我正在创建井字游戏,并使用2D阵列跟踪每个正方形中的内容。问题是数组没有采用第二个列的大小。
package TicTacToePrj;
import java.awt.*;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Random;
public class SuperTicTacToeGame {
private Cell[][] cBoard;
private GameStatus status;
private Cell turn;
private int connections;
int r = 3;
int c = 3;
public int getR() {
return r;
}
public void setR(int r) {
this.r = r;
}
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
private static final boolean AI = true;
private ArrayList<Point> backup = new ArrayList<Point>();
public SuperTicTacToeGame(int r, int c) {
status = GameStatus.IN_PROGRESS;
cBoard = new Cell[this.r][this.c];
reset();
}
}
数组正在使用这些枚举器对象,这是我唯一的怀疑。
package TicTacToePrj;
public enum Cell {
X, O, EMPTY
}
答案 0 :(得分:3)
您的构造函数将忽略参数(r
,c
),而使用字段(this.r
,this.c
)来初始化矩阵。
如果要保留这些字段,要修复代码,您需要首先为字段分配参数。
另外,您的set
方法可能无法正常工作,因为您更改了矩阵大小,但没有更改矩阵本身。您应该删除这些方法,或者在调用setter时对矩阵做一些事情。