Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tic Tac趾板不随玩家移动而更新_Java_Arrays_Tic Tac Toe - Fatal编程技术网

Java Tic Tac趾板不随玩家移动而更新

Java Tic Tac趾板不随玩家移动而更新,java,arrays,tic-tac-toe,Java,Arrays,Tic Tac Toe,因此,我正在制作一个程序,从main中的键盘获取一行int和一列int,并将它们传递给构造函数。这将使用传入的值创建一个字符串矩阵,并将它们全部设置为字符串“space”,该字符串被分配给“u u u”。现在,当我尝试用分配给“x”的玩家移动“人”替换数组中的任何元素时,我的问题出现了。每当我尝试这样做时,比如第1行和第1列,我会得到一个空指针异常,程序就会中断。我正试着自己做这件事,所以我只想尝试输入我认为必要的代码,但是任何替换这些元素的帮助都会非常好 { private int row;

因此,我正在制作一个程序,从main中的键盘获取一行int和一列int,并将它们传递给构造函数。这将使用传入的值创建一个字符串矩阵,并将它们全部设置为字符串“space”,该字符串被分配给“u u u”。现在,当我尝试用分配给“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.";
    }
}
{
私人int row;
私人国际学院;
专用字符串[][]板;
专用字符串空格=“\uuuuuuuuuuuuuuuuu”;
私有字符串human=“\u x\ux”;
私有字符串comp=“\u o\u0”;
私有字符串输出=”;
公共行动
{
}
公共移动(内部r、内部c)
{
row=r;
col=c;
board=新字符串[行][col];
}
公共字符串[][]genMatrix()
{

对于(int i=0;i,解决方案是在构造函数中调用genMatrix

有些事情还不清楚:

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

  • genMatrix在玩家移动之前被调用。我打印了一个“示例板”这是一个3乘3的矩阵,用户输入的只是他们想进入的行和列。我认为更好的问题是:如何用另一个字符串替换字符串矩阵中的元素。因为这似乎是固有的问题,因此空指针错误问题不是替换步骤-它在if块中decision if(board[row][col].equals(space))//问题出在这里,equals方法在null上执行。