簡體   English   中英

我應該如何為我的 Connect 4 程序實現水平獲勝算法?

[英]How should I implement a horizontal win algorithm for my Connect 4 program?

我正在制作一個連接 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;
            }

        }

這是我不斷得到的結果: 結果

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM