我正在用Java编写一个TicTacToe程序。抽搐的网格编码为
String[] board = new String[9]
有了这个,我有一个单独的班级来接管董事会,并确定最佳的行动。对于初学者,我决定,如果对手在行/列/对角线中有2个,则计算机应将该符号放置在该行/列/对角线的下一个空格中。
这是我的入门代码:
String[][] threes = new String[8][3];
for (String[] arr: threes) {
// Compare the elements of arr to figure out how to block opponent
}
正如您在代码中的注释中所看到的,除了在每种可能情况下,有两种元素(一种X或O)和一种未填充的元素,有什么方法可以在Java中快速确定以下内容:
if ((arr[0].equals(arr[1])) && !(arr[1].equals(arr[2]))) {
return arr[2];
}
谢谢!
答案 0 :(得分:2)
对于这个特定的问题,我将更改您的模型以存储int
值,并将-1
表示为“ O”,将+1
表示为“ X”,将0表示为空白。 / p>
然后,如果对任何行求和,将得到:
您的视图将负责将-1和+1转换为正确的X / O符号,并且您的控制器会将这些符号转换为适当的值以存储在模型中。