Java 我应该如何为我的Connect 4程序实现横向赢算法?
我正在做一个连接4板游戏,我实现了这个横向赢算法。 不知什么原因,它似乎不起作用。 基于代码,我假设我在算法中设置的条件将在generateBoard方法中查看分配给数组的值,但事实并非如此 可能的解决办法是什么?感谢您的帮助Java 我应该如何为我的Connect 4程序实现横向赢算法?,java,Java,我正在做一个连接4板游戏,我实现了这个横向赢算法。 不知什么原因,它似乎不起作用。 基于代码,我假设我在算法中设置的条件将在generateBoard方法中查看分配给数组的值,但事实并非如此 可能的解决办法是什么?感谢您的帮助 public static String[][] generateBoard(){ String[][] board = new String[6][7]; //[row][column] 6 by 7 for(int i = 0; i&l
public static String[][] generateBoard(){
String[][] board = new String[6][7]; //[row][column] 6 by 7
for(int i = 0; i<board.length; i++) {
for(int j = 0; j<board[i].length; j++) {
if(j == 0)
board[i][j] = "| |";
else
board[i][j] = " |";
}
}
return board;
}
公共静态字符串[][]生成板(){
String[][]board=新字符串[6][7];//[row][column]6 x 7
for(int i=0;i//检查轮到哪个玩家
字符串颜色=(redPlayerTurn)?“R”:“Y”;
int pattern=0;//用作检测胜利者的标志
//水平检查
对于(int i=1;i
在第二个for
,else
分支中,是否缺少{}
?如果缺少{}
,每次循环运行都会将模式分配给0
。此外,模式检查应该是=4
。
//Checks to see which player's turn it is
String color = (redPlayerTurn) ? "R" : "Y";
int pattern = 0; //Used as a flag for detecting a winner
//HORIZONTAL Check
for(int i = 1; i < board.length; i++) {
String columnIndex = board[i][0];
pattern = 1;
for(int j = 1; j < board[i].length; j++) {
if(!(board[i][j].contains("| |") || board[i][j].contains(" |"))) {
if(columnIndex == board[j][i] && pattern != 0)
pattern++;
}else
columnIndex = board[i][j];
pattern = 0;
}if(pattern == 4) {
return true;
}
}
//Checks to see which player's turn it is
String color = (redPlayerTurn) ? "R" : "Y";
int pattern = 0; //Used as a flag for detecting a winner
//HORIZONTAL Check
for(int i = 1; i < board.length; i++) {
String columnIndex = board[i][0];
pattern = 1;
for(int j = 1; j < board[i].length; j++) {
if(!board[i][j].contains("|")) {
if(columnIndex == board[j][i] && pattern != 0) {
pattern++;
} else {
columnIndex = board[i][j];
pattern = 0; // <- missing {} will assign pattern to 0
}
}
}
if(pattern >= 4) {
return true;
}
}