Tic-Tac-Toe Board不随球员移动而更新

时间:2015-04-17 04:18:08

标签: java arrays tic-tac-toe

所以我正在创建一个程序,它从main中的键盘获取行int和col int,并将它们传递给构造函数。这将使用传入的值创建一个String矩阵,并将它们全部设置为字符串" space",它被分配给" ___"。现在,当我尝试用玩家移动"人类"来替换数组中的任何元素时,我的问题就出现了。分配给" x "。每当我尝试这样做时,比如第1行和第1列,我得到一个空指针异常,程序就会中断。我试图自己这样做,所以我只是尝试输入尽可能多的代码,但是更换这些元素的任何帮助都会很棒。

 {
private int row;
private int col;
private String [][] board;
private String space = "___";
private String human = "_x_";
private String comp = "_o_";
private String output = "";
public Move()
{

}
public Move(int r, int c)
{
    row = r;
    col = c;
    board = new String [row][col];
}

public String [][] genMatrix()
{
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            board[i][j] = space;
        }
    }
    return board;
}

public String playermove()
{
    row = row - 1;
    col = col - 1;
    if(board[row][col].equals(space))
    {
        board[row][col] = human;
        return "";
    }
    else
    {
        return "That space has already been filled, try again.";
    }
}

1 个答案:

答案 0 :(得分:0)

解决方案是在构造函数中调用genMatrix。

有些事情不清楚:

  1. 假设是3 * 3矩阵或根据用户的判断(比如m * n)?
  2. 我们在构造函数中初始化m * n,但genMatrix只需要处理3 * 3.