我正在使用数组制作一个井字游戏。如果有人获胜,我必须检查是否有胜利组合。 这是我的电路板阵列
string[] board = new string[9] { " ", " ", " ", " ", " ", " " , " ", " ", " " };
首先,董事会是空的。然后两名球员开始放置'X'和'O'。 但是,我无法比较,例如,第一行是否充满'X'。 以下代码由于某种原因不起作用。我不知道为什么?
board[0].Equals(board[1]).Equals(board[2]).Equals("X")
我也试过了board[0]==board[1]==board[2]=="X"
以下是完整的if语句(这些是获胜组合):
if (table[0].Equals(table[1]).Equals(table[2]).Equals("X") || table[3].Equals(table[4]).Equals(table[5]).Equals("X") || table[6].Equals(table[7]).Equals(table[8]).Equals("X") ||
table[0].Equals(table[3]).Equals(table[6]).Equals("X") || table[1].Equals(table[4]).Equals(table[7]).Equals("X") || table[2].Equals(table[5]).Equals(table[8]).Equals("X") ||
table[0].Equals(table[4]).Equals(table[8]).Equals("X") || table[7].Equals(table[4]).Equals(table[3]).Equals("X"))
{
return true;
}
答案 0 :(得分:1)
在c#中,您无法使用
if (a == b == c)
相反,你必须明确:
if (a == b && b == c)
所以而不是
board[0].Equals(board[1]).Equals(board[2]).Equals("X")
你必须写
board[0] == "X" && board[1] == "X" && board[2] == "X"
答案 1 :(得分:0)
将board[0].Equals(board[1]).Equals(board[2]).Equals("X")
更改为String.Equals(board[0], board[1]) && String.Equals(board[1], board[2]) && String.Equals(board[2], "X")
。
此处' s documentation on comparing strings位于c#。