gpt4 book ai didi

java - 检查四层、四宽、四高的井字游戏中的行

转载 作者:行者123 更新时间:2023-12-01 06:16:49 25 4
gpt4 key购买 nike

public boolean checkWin() {
if(states[0][0][0] == 1 && states[0][0][1] == 1 && states[0][0][2] ==1 && states[0][0][3] ==1) { // Checks 0th layer, 0th row
return true;
}
else if (states[0][1][0] == 1 && states[0][1][1] == 1 && states[0][1][2] ==1 && states[0][1][3] ==1) { // Checks 0th layer, 1st row
return true;
}
else if (states[0][2][0] == 1 && states[0][2][1] == 1 && states[0][2][2] ==1 && states[0][2][3] ==1) { // Checks 0th layer, 2nd row
return true;
}
else if (states[0][3][0] == 1 && states[0][3][1] == 1 && states[0][3][2] ==1 && states[0][3][3] ==1) { // Checks 0th layer, 3rd row
return true;
}
}

此代码经过硬编码,用于检查第 0 层以及该层上的 4 行。我可以对其余部分进行硬编码,但这当然会非常耗时且代码很糟糕。当我尝试进行循环时,它会在点击三下后停止

public boolean checkWin() {

for (int i=0; i<=3; i++) {
if(states[0][0][i] == 1){ // Checks 0th layer, all rows
return true;
}
}
return false;
}

这就是我尝试制作循环的方法,但它不起作用。

最佳答案

这个游戏是数据驱动方法如何简化我们的代码的一个很好的例子。考虑:

  • 有 64 个单元格,可以为空或包含 token ;代币的数量取决于玩家的数量。这可以表示为包含 64 个元素的一维数组。

  • 单元格共有 76 行。这可以表示为一个 76 行、每行 4 行的数组,每个单元格包含第一个数组中元素的下标。 (在 C 或 C++ 中,您还可以存储指针,在 Java 中,您可以存储引用)。

要检查获胜行,您可以迭代 76 行,并检查第一个数组的行中的每个单元格是否都有您分配给一个玩家或另一个玩家的值。

关于java - 检查四层、四宽、四高的井字游戏中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22677198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com