Цикл For участвует в диагональной проверке Connect Four - PullRequest
0 голосов
/ 31 мая 2018

Итак, я сейчас пишу Connect 4 на NetBeans.У меня уже есть вертикальная и горизонтальная проверка, но у меня проблемы с диагональной проверкой, в частности, для циклов 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, поэтому я не уверен, как это устроить.

Спасибо за помощь

1 Ответ

0 голосов
/ 31 мая 2018

Синтаксис

Вы поставили точку с запятой вместо запятой в первом цикле 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 в обоих случаях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...