【发布时间】:2009-06-22 14:45:53
【问题描述】:
我正在执行一项任务,使用多维数组创建一个tictactoe 游戏,这是一个单独的类,其方法由主类调用。
数组是 3 X 3 并且被初始化为零。当玩家 1 在棋盘上选择一个位置时,将在该特定索引中放入 1。然后提示允许玩家 2 进行选择。每次轮到玩家时,都会调用一个方法来检查棋盘是否完整,如果棋盘完整(填充了 1 和 2'),则游戏称为平局。这种方法不能正常工作,有时会在第二步时称游戏为平局。这是我正在使用的方法。
public boolean isBoardComplete()
{
// sets complete to true
boolean complete = true;
//will change complete to false
for (int i = 0; i < 3; i++)
{
for(int j =0; j < 3; j++)
{
if (_board[i][j] == 0)
{
complete = false;
}
}
}
return complete;
}
【问题讨论】:
-
我们只能说你的数组中确实有一个 0。需要查看创建数组的代码、调用 isBoardComplete 的代码以及写入数组的任何其他代码
-
您是否验证了在播放移动时数组正确填充了 1?尝试在 isBoardComplete() 中打印数组并验证数组是否包含正确的值。
-
我不明白你的 isBoardComplete() 当所有 9 个位置都被填满时它返回 true,这是在 9 个步骤之后。如果是井字游戏,则应检查行、列和两条对角线中是否有 3 个相同的值。
-
你是如何创建数组的?你是如何填充细胞的?尝试打印内容(或使用调试器)以查看数组的内容以防出错。
标签: java arrays multidimensional-array