【问题标题】:For-loop involved in Diagonal Check for Connect Four连接四的对角检查中涉及的 For 循环
【发布时间】:2018-11-10 00:42:42
【问题描述】:

所以我目前正在 Netbeans 上编写 Connect 4。我已经进行了垂直和水平检查,但是我在对角线检查时遇到了问题,特别是 for 循环。目前我的代码,

    public static boolean checkDiagnol(String[][] board, int counter, String playerMoving, int lastPlacedTileRow, int col) {

    for (int i = lastPlacedTileRow-1; q = col-1; i >= 0, q >=0; i--,q--){
            if (board[i][q] == playerMoving) {
                counter += 1;
            } else {
                break;
            }
            if (counter > 4) {
                return true;
            }
    }
    for (int i = lastPlacedTileRow + 1, q = col +1; i < board.length, q < board[0].length; i++,q++) {

            if (board[i][q] == playerMoving) {
                counter += 1;
            } else {
                break;
            }
            if (counter > 4) {
                return true;
          } 
    }
    return false;

}

lastPlacedTileRow 是最后放置的棋子所在的行,col 是用户选择的列,counter 是用来检查一行是否有 4 个棋子的计数器,playerMoving 是当前玩家棋子。

我目前的问题是我的 for 循环出错。这是我第一次在一个 for 循环中使用两个变量,所以我不确定它应该如何排列。

感谢您的帮助

【问题讨论】:

  • 什么错误?使用消息更新您的问题。

标签: java arrays for-loop


【解决方案1】:

语法

您在第一个 for 循环中放置了分号而不是逗号。

for (int i = lastPlacedTileRow-1; q = col-1; i >= 0, q >=0; i--,q--){

这应该是

for (int i = lastPlacedTileRow-1, q = col-1; i >= 0, q >=0; i--,q--){

逻辑

我认为变量 i 在两个循环中都应该倒数(或倒数),因为在这两种情况下我们都必须检查 lastPlacedTileRow 下方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-31
    • 2015-10-07
    • 2017-01-29
    • 2019-06-24
    • 1970-01-01
    • 2019-04-14
    • 2021-05-12
    • 2016-06-05
    相关资源
    最近更新 更多