gpt4 book ai didi

java - 我应该如何为我的 Connect 4 程序实现水平获胜算法?

转载 作者:行者123 更新时间:2023-12-01 19:33:36 25 4
gpt4 key购买 nike

我正在制作一个 Connect 4 棋盘游戏,并实现了这个水平获胜算法。由于某种原因它似乎不起作用。根据代码,我假设我在算法中设置的条件将查看在generateBoard方法中分配给数组的值,但事实并非如此。

可能的解决方案是什么?如有任何帮助,我们将不胜感激。

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;
}

水平获胜算法:

        //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;
}

}

这是我不断得到的结果: Result

最佳答案

//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;
}
}

关于java - 我应该如何为我的 Connect 4 程序实现水平获胜算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59242100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com