Java 通过连接四个网格进行循环
我正在做一个连接四个项目,但我正在努力与胜利检查。我认为这与我如何在网格上循环有关。它在水平方向工作,但不是垂直方向,它在对角线方向工作Java 通过连接四个网格进行循环,java,Java,我正在做一个连接四个项目,但我正在努力与胜利检查。我认为这与我如何在网格上循环有关。它在水平方向工作,但不是垂直方向,它在对角线方向工作 public boolean gameStatus(MyBoard gameBoard, int columnPosition, CellState gameToken) { int rowPosition = 0; for (int i = 0; i < gameBoard.getWidth(); i++) for (
public boolean gameStatus(MyBoard gameBoard, int columnPosition, CellState gameToken) {
int rowPosition = 0;
for (int i = 0; i < gameBoard.getWidth(); i++)
for (int j = 0; j < gameBoard.getHeight(); j++)
if (gameBoard.get(i, columnPosition) != CellState.FREE)
rowPosition = i;
if (checkColumn(gameBoard, columnPosition, gameToken, rowPosition))
return true;
}
public boolean checkColumn(MyBoard gameBoard, int columnPosition, CellState gameToken, int rowPosition) {
int tokenCounter = 1;
if ((rowPosition + 4) <= 6)
for (int i = rowPosition + 1; i <= rowPosition + 3; i++)
if (gameToken == gameBoard.get(i, columnPosition))
tokenCounter++;
else
break;
if (tokenCounter == 4)
return true;
return false;
}
public boolean gameStatus(MyBoard gameBoard、int columnPosition、CellState gameToken){
int rowPosition=0;
对于(int i=0;i 如果((rowPosition+4)我认为这只检查最后一行,它是非空的
Java不关心缩进,因此在没有大括号的情况下,if
和for
只在它们后面使用语句。这意味着if(checkColumn…
只运行一次,而不是对每一列运行一次
你可能想试试类似的东西
public boolean gameStatus(MyBoard gameBoard, int columnPosition, CellState gameToken) {
int rowPosition = 0;
for (int i = 0; i < gameBoard.getWidth(); i++) {
for (int j = 0; j < gameBoard.getHeight(); j++) {
if (gameBoard.get(i, columnPosition) != CellState.FREE) {
rowPosition = i;
}
}
if (checkColumn(gameBoard, columnPosition, gameToken, rowPosition)) {
return true;
}
}
public boolean gameStatus(MyBoard gamesboard,int columnPosition,CellState gamestoken){
int rowPosition=0;
对于(int i=0;i
一般来说。我建议不要在没有大括号的情况下编写if
、for
和while
语句。它保存的两个字符不值得您意外引入的错误。我认为这只检查最后一行,它不是空的
Java不关心缩进,因此在没有大括号的情况下,if
和for
只在它们后面使用语句。这意味着if(checkColumn…
只运行一次,而不是对每一列运行一次
你可能想试试类似的东西
public boolean gameStatus(MyBoard gameBoard, int columnPosition, CellState gameToken) {
int rowPosition = 0;
for (int i = 0; i < gameBoard.getWidth(); i++) {
for (int j = 0; j < gameBoard.getHeight(); j++) {
if (gameBoard.get(i, columnPosition) != CellState.FREE) {
rowPosition = i;
}
}
if (checkColumn(gameBoard, columnPosition, gameToken, rowPosition)) {
return true;
}
}
public boolean gameStatus(MyBoard gamesboard,int columnPosition,CellState gamestoken){
int rowPosition=0;
对于(int i=0;i
一般来说。我建议不要写不带大括号的if
、for
和while
语句。它保存的两个字符不值得你意外引入的bug是你的if(检查列(…)
语句应该作为for
循环的一部分执行吗?您的缩进表明这可能是您的意图,但目前看来不会。您的if(checkColumn(…)
语句应该作为for
循环的一部分执行吗?您的缩进表明这可能是您的意图,但目前它不会。谢谢您,现在它可以水平运行。您是对的,考虑到我花了几个小时处理这个问题,这不值得,错误只是一个简单的括号错误。谢谢您,现在我知道了你是对的,考虑到我花了几个小时处理这个问题,这个错误只是一个简单的括号错误,所以不值得这么做。