【发布时间】:2014-03-31 16:45:37
【问题描述】:
我在玩井字游戏的模拟游戏时遇到了问题。我正在使用一个二维数组来表示棋盘,并将其实例化如下。我需要使用 char 类型的数组。我意识到我不应该指定每个索引为空,因为这是 char 的默认值,但我想我会尝试一下。
public TicTacToe2D()
{
board = new char[3][3];
for(int i = 0; i < board.length; i++)
{
for(int j = 0; j < board[i].length; j++)
{
board[j] = null;
}
board[i] = null;
}
}
在这里,我正在检查获胜条件,查看索引是否彼此相等而不是 null(默认值),尽管我尝试使用 ' ' 作为我的数组初始值。在那种情况下,我收到错误:“不兼容的类型:char 无法转换为 char[]”
public char isWin()
{
//Check for row wins
if (board[0][0] == board[0][1] && board[0][1] == board[0][2] && board[0][0] != null)
return true;
if (board[1][0]==board[1][1] && board[1][1]==board[1][2] && board[1][0] != null)
return true;
if (board[2][0]==board[2][1] && board[2][1]==board[2][2] && board[2][0] != null)
return true;
//Check for column wins
if (board[0][0]==board[1][0] && board[1][0]==board[2][0] && board[0][0] != null)
return true;
if (board[0][1]==board[1][1] && board[1][1]==board[2][1] && board[0][1] != null)
return true;
if (board[0][2]==board[1][2] && board[1][2]==board[2][2] && board[0][2] != null)
return true;
//Check for diagonal wins
if (board[0][0]==board[1][1] && board[1][1]==board[2][2] && board[0][0] != null)
return true;
if (board[2][0] == board[1][1] && board[1][1] == board[0][2] && board[2][0] != 0)
return true;
else return false;
}
检查索引是否为空时,我收到错误“无法比较的类型:char 和” 任何帮助将不胜感激!
【问题讨论】:
-
Char 是原始类型,不能为空,默认为
'\u0000',默认为0。 -
另外,您在
board[j] = null;所做的是将数组的每一“行”设置为空!
标签: java multidimensional-array null char incompatibility