嘿,我正在制作一个TicTacToe游戏,在该游戏中,它检查每个索引的值是否为“ x”或“ o”,并且始终向我提供错误java.lang.ArrayIndexOutOfBoundsException:3作为第一个if语句。任何暗示为什么会这样的帮助?
public boolean checkRowsForWin(int usrBrd, int WinSeq) {
int countX = 0;
int countO = 0;
for(int i = 0; i < usrBrd; i++) {
for(int j = 0; i< usrBrd; j++) {
if(board[i][j] == 'x') {
countX++;
}
else if(board[i][j] == 'o') {
countO++;
}
else {
countX = 0;
countO = 0;
}
if (countX >= WinSeq) {
return true;
}
else if (countO >= WinSeq) {
return true;
}
}
}
return false;
}
这是我初始化板子的地方
Scanner scnr = new Scanner (System.in);
System.out.println("Tic-Tac-Toe!");
System.out.println("How large would you like the board?(Must be greater
than 3)");
int usrBrd = scnr.nextInt();
if(usrBrd < 3) {
System.out.println("Not a valid number, please try again");
usrBrd = scnr.nextInt();
}
TicTacToe game = new TicTacToe(usrBrd);
game.initializeBoard(usrBrd);
System.out.println("What should the win sequence be? Write in form of
amount i.e \"3\" ");
int winSeq = scnr.nextInt();
这是初始化电路板的方法
public TicTacToe(int usrBrd) {
board = new char[usrBrd][usrBrd];
currentPlayerMark = 'x';
initializeBoard(usrBrd);
}
public void initializeBoard(int usrBrd) {
//loop rows
for (int i = 0; i < usrBrd; i++) {
//loop columns
for(int j = 0; j < usrBrd; j++) {
board[i][j] = '-';
}
}
}
最佳答案
您的错误在于第二个for循环中
for(int j = 0; i< usrBrd; j++)
您始终检查i
关于java - TicTacToe数组超出范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59414575/