如何有条不紊地比较列表中的随机元素 - Java

How to methodically compare random elements in list - Java

我正在 Java 中编写 TicTacToe 程序。抽动的网格编码为

String[] board = new String[9]

有了这个,我有一个单独的 class 来处理棋盘并确定最佳可能的着法。对于初学者,我决定如果对手在 row/column/diagonal 中有 2 个,那么计算机应该将符号放在 row/column/diagonal 中的下一个 space 中。

这是我的起始代码:

String[][] threes = new String[8][3];
    for (String[] arr: threes) {
        // Compare the elements of arr to figure out how to block opponent
    }

正如您在代码中的注释中看到的那样,有什么方法可以在 Java 中快速确定以下内容,除了具有一种类型(X 或 O)和一种元素的 2 个元素的每种可能情况未填写:

if ((arr[0].equals(arr[1])) && !(arr[1].equals(arr[2]))) {
    return arr[2];
}

谢谢!

对于这个特定问题,我会更改您的模型以存储 int 值,并使用 -1 表示“O”,+1 表示“X”,0 表示空白.

然后,如果你对任何一行求和,你将得到:

  • +3 或 -3 表示“获胜”,
  • +2 或 -2 表示未阻塞的连续 2

您的视图将负责将 -1 和 +1 转换为正确的 X/O 符号,而您的控制器会将这些符号转换为适当的值以存储在模型中。