Метод горизонтального обтекания Othello не работает? - PullRequest
0 голосов
/ 13 января 2020

Это мой первый год в CS, и я относительно новичок в Java, так что прости меня, если я тупой. Мой последний проект для этого курса - создать игру Отелло. Наш учитель создал для нас все GUI, и мне просто нужно реализовать логику c игры. В нашей версии, каждый ход не должен приводить к перевесу, в отличие от оригинальной игры. У меня возникают проблемы с проверкой того, приводит ли фигура к горизонтальному обтеканию.

Игра на доске 8х8. ИИ здесь не задействован, так как это игра для двух игроков. int row и int column являются координатами нажатой площади. доска [строка] [колонка] используется для поиска любой фигуры на доске. Это немного моего кода, который проверяет, превосходит ли PLAYER2 какой-либо фрагмент слева. Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю этот код, ничего в этом методе не запускается. Другие методы работают, просто этот не работает. У меня нет возможности проверить, работает это или нет. Я считаю, что это как-то связано с тем, как написан этот код, поэтому мне было интересно, может ли кто-нибудь мне помочь?

//Checks whether piece outlflanks any pieces horizontally   
    public void outFlankHori (int row, int column) {
    int count = 0;
 //Checks whether there is a horizontal outflank to the left with PLAYER2
 // Checks whether the piece played is Player 2 and whether the piece to the left is Player 1
    if (board[row][column] == PLAYER2 && board[row][column-1] == PLAYER1) {
    //For loop going through the entire row to the left of the piece
    for (int i = column; i <= column && i >= 0; i--) {
      //While the pieces to the left are not PLAYER2 or EMPTY, the counter increases
      while (board[row][i] != PLAYER2 && board[row][i] != EMPTY) {
      count++;
       //Once the piece to the left equals PLAYER2, there has been a horizontal outflank
      if (board[row][i] == PLAYER2) {      
       //Sets all pieces to the left to Player 2                        
       while (count >= 0) {
       gui.setPiece(row, (column - count), PLAYER2);
       count--;
      }
     }   
    }
   }
  } 
 }  
...