我有一个程序,我正在编写的工作原理是填充二维数组来检查获胜条件,它是noughts和十字架,所以二维数组填充在点击一个按钮,1表示一个圆圈,2表示一个cross,那么checkWin()将按照这个原则工作,而不是实际的代码......
if (myArray[0][0] == 1 && myArray[0][1] == 1 && myArray[0][2] == 1){ setBoolWinVal = true; } else { if(myArray[0][0] == 2 && myArray[0][1] == 2 && myArray[0][2] == 2){ setBoolWinVal = true; }
你可以立即看到,对于每一个获胜的条件,这将是凌乱的,有没有办法重写这个检查胜利,以缩短它一点点?
这看起来像家庭作业,所以我不会完全放弃它.但请注意以下几点:
当你有三个相同的东西连续,一列或沿对角线时,你赢了.
这不是你需要检查一行中是否有三个零或三个十字,而是一行中有三个相同的东西.
您可以从编写一个函数开始,该函数确定行,列或对角线是否具有三种相同类型的东西(并且该东西不是空白单元格).然后为每行,每列和对角线调用该函数一次.