需要循环帮助

墨GFX

知名会员
已加入
2013年2月2日
留言内容
142
编程经验
Beginner
我正在玩井字游戏,以学习如何为棋盘生成2D阵列。我可以做得很好,我的问题是如何遍历整个董事会,看看是否有赢家或平局。
这是我目前拥有的代码,我知道必须有一种更好的方法来执行此操作,但我在执行该操作时遇到了困难。

这是我所拥有的

C#:
 private bool calculateWinner()
        {
            bool isWinner = false;




            if (board[0, 0] == "X" && board[0, 1] == "X" && board[0, 2] == "X" ||
                board[1, 0] == "X" && board[1, 1] == "X" && board[1, 2] == "X" ||
                board[2, 0] == "X" && board[2, 1] == "X" && board[2, 2] == "X" ||
                board[0, 0] == "X" && board[1, 1] == "X" && board[2, 2] == "X" ||
                board[0, 0] == "X" && board[1, 1] == "X" && board[2, 2] == "X" ||
                board[0, 2] == "X" && board[1, 1] == "X" && board[2, 0] == "X")
            {
                winner = "Player 1";
                resetBoard();
                tie = 0;
                isWinner = true;
            }


            else if (board[0, 0] == "0" && board[0, 1] == "0" && board[0, 2] == "0" ||
                board[1, 0] == "0" && board[1, 1] == "0" && board[1, 2] == "0" ||
                board[2, 0] == "0" && board[2, 1] == "0" && board[2, 2] == "0" ||
                board[0, 0] == "0" && board[1, 1] == "0" && board[2, 2] == "0" ||
                board[0, 0] == "0" && board[1, 1] == "0" && board[2, 2] == "0" ||
                board[0, 2] == "0" && board[1, 1] == "0" && board[2, 0] == "0")
            {
                winner = "Player 2";
                resetBoard();
                tie = 0;
                isWinner = true;
            }
            else if (turn > 8)
            {
                tie = 1;
            }
        
            if (tie != 0)
            {
                winner = "Tie";
                isWinner = true;
                resetBoard();
            }
          
          


           return isWinner;
        }

该代码可以检查X或0是否赢了,但在平局的情况下不起作用。反正用for循环来做到这一点?

感谢您的任何帮助

-着墨
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,563
地点
悉尼,澳大利亚
编程经验
10+
有很多选择。人们只会考虑当前的球员,因为他们是唯一可以赢得比赛的球员。这意味着传递"X" or an "O"并且只能连续搜索三个该类型的单词。我还建议您寻找赢家,而不考虑游戏是否完成。只有确定没有赢家后,您才可以检查游戏是否结束。这意味着寻找获胜者的方法并不在乎它是哪一步。
 

墨GFX

知名会员
已加入
2013年2月2日
留言内容
142
编程经验
Beginner
感谢你能这么快回复。看来我将不得不以不同的方式来考虑。

我将尝试使用for循环,看看是否可以解决....谢谢您的帮助

-着墨
 
最佳 底部