这是我在这里的第一个问题,所以我很抱歉任何错误。我正在写一个tic-tac-toe游戏。我有这个问题。
if (!table[0][0].equals(" ") && !table[1][0].equals(" ") && !table[2][0].equals(" ") &&
!table[0][1].equals(" ") && !table[1][1].equals(" ") && !table[2][1].equals(" ") &&
!table[0][2].equals(" ") && !table[1][2].equals(" ") && !table[2][2].equals(" ")) {
System.out.println("Draw!");
return true;
}
例如:如果我在String
中插入任何table[0][0]
,则会返回true
,尽管其他字段为" "
。
答案 0 :(得分:0)
我在Board类中初始化了表。这是构造函数:
public Board() {
sc = new Scanner(System.in);
board = new Mark[3][3];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
board[i][j] = new Mark(" ");
}
}
}
这是我的checkResult方法:
public boolean checkResult() {
if ((table[0][0] == table[1][0] && table[1][0] == table[2][0] && !table[2][0].equals(" "))
|| (table[0][1] == table[1][1] && table[1][1] == table[2][1] && !table[2][1].equals(" "))
|| (table[0][2] == table[1][2] && table[1][2] == table[2][2] && !table[2][2].equals(" "))
|| (table[0][0] == table[0][1] && table[0][1] == table[0][2] && !table[0][2].equals(" "))
|| (table[1][0] == table[1][1] && table[1][1] == table[1][2] && !table[1][2].equals(" "))
|| (table[2][0] == table[2][1] && table[2][1] == table[2][2] && !table[2][2].equals(" "))
|| (table[0][0] == table[1][1] && table[1][1] == table[2][2] && !table[2][2].equals(" "))
|| (table[0][2] == table[1][1] && table[1][1] == table[2][0] && !table[2][0].equals(" "))) {
System.out.println("You won");
return true;
}
if (!table[0][0].equals(" ") && !table[1][0].equals(" ") && !table[2][0].equals(" ") && !table[0][1].equals(" ")
&& !table[1][1].equals(" ") && !table[2][1].equals(" ") && !table[0][2].equals(" ")
&& !table[1][2].equals(" ") && !table[2][2].equals(" ")) {
System.out.println("Draw!");
return true;
}
return false;
}
这是我的测试课程:
public class Test {
public static void main(String[] args) {
Logika lg = new Logika();
do{
lg.insertMark2();
lg.printBoard();
} while(!(lg.checkResult()));
}
}
当我第一次插入时,程序停止。