java - 井字棋棋盘不随玩家移动而更新

标签 java arrays tic-tac-toe

所以我正在编写一个程序,它从主键盘中获取 row int 和 col int ,并将它们传递到构造函数中。这将使用传入的这些值创建一个字符串矩阵,并将它们全部设置为字符串“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.";
    }
}

最佳答案

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

有些事情不清楚:

  1. 假设为 3*3 矩阵还是根据用户自行决定(例如 m*n)?
  2. 我们在构造函数中初始化 m*n,但 genMatrix 只处理 3*3。

关于java - 井字棋棋盘不随玩家移动而更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29690211/

相关文章:

java - 使组件仅占用特定部分的空间(如 2/3 或 9/10)

java - 为什么 @OneToMany 不适用于 Hibernate 中的继承

arrays - 不同大小数组的匹配索引

java - 复制数组的值

java - Tic Tac Toe Java 几乎完成,除了轻微的显示错误

C++ 控制台 TicTacToe : Checking Win Conditions

java - 如何知道我的代码在 IDE 中以 "debug"模式运行?

java - 创建、写入和读取文件 java

C++不从文本文件中将值读入数组

javascript - 需要帮助在 p5.js 中为 Tic Tac Toe 绘制 X