对于大学的一个项目,我必须创建一个井字游戏。
我有这个for带有if语句的循环来搜索 3x3 大小的二维数组,如果它是X或O(枚举),则返回。这导致显示哪一方赢得了比赛。
但是,我遇到的问题是,如果 2D 数组不完整,就像所有 9 个框都没有填充X或 一样O,该方法会显示NullPointerException.
编辑:我必须补充一点,我要求空网格与null其他单元测试假设grid[][]初始化为null.
错误:
Exception in thread "main" java.lang.NullPointerException
at TicTacToeImplementation.whoHasWon(TicTacToeImplementation.java:80)
at ApplicationRunner.main(ApplicationRunner.java:24)
代码:
public enum Symbol {
X, O
}
private Symbol winner;
public Symbol whoHasWon() {
for (Symbol xORo : Symbol.values()) {
if ((grid[0][0].equals(xORo) &&
grid[0][1].equals(xORo) &&
grid[0][2].equals(xORo))) {
winner = xORo;
isGameOver = true;
break;
} else if ((grid[1][0].equals(xORo) &&
grid[1][1].equals(xORo) &&
grid[1][2].equals(xORo))) {
winner = xORo;
isGameOver = true;
break;}
else if { //Code carries on to account for all 8 different ways of winning
} else {
isGameOver = true;
}
}
return winner;
}
森林海
相关分类