Ошибка источника не найдена в режиме отладки при запуске метода в Java с блоком try / catch - PullRequest
0 голосов
/ 12 октября 2019

Я работаю над простой игрой connect four на Java и пытаюсь использовать в своем коде блок try / catch, который опускает диск игрока в игровое поле. Я отредактировал некоторый код, чтобы преднамеренно заставить его выдавать ошибку, если проигрыватель пытается сбросить диск в полный столбец, но когда я сделал это изменение, я получаю ошибку «Источник не найден» в затмении. Код ниже:

public void dropDisc(int column, int player, Scanner input) {
        //Method to drop a disc in the appropriate column of the game board.

        char disc;

        if(player == 1)
            disc = 'R';
        else
            disc = 'Y';

        column = (column * 2) + 1;  //Sets column to a blank space 

        try{
        //  for(int i = 0; i <= 5; i++) {
        //  
        //      if (i == 5) {
        //          gameBoard[i][column] = disc;
        //          break;}
        //      else if (gameBoard[i + 1][column] == 'Y' || gameBoard[i + 1][column] == 'R') {
        //          gameBoard[i][column] = disc;
        //          break;}
        //  }
            for(int i = 5; i <= -1; i--) {

                if (gameBoard[i][column] == 'Y' || gameBoard[i][column] == 'R')
                    continue;
                else
                    gameBoard[i][column] = disc;
            }
        } catch(Exception e) {
            System.out.println("Column full, please select another column.");
            column = input.nextInt();

            dropDisc(column, player, input);
        }
    }

Если я закомментирую второй цикл for и откомментирую первый, тогда код работает нормально. Я не уверен, почему я получаю эту ошибку Source Not Found, когда я использую вторую версию цикла. Есть ли что-то очевидное, чего мне здесь не хватает?

1 Ответ

0 голосов
/ 12 октября 2019

Трудно определить проблему, потому что вы опубликовали только часть своего кода. Вам было бы легче помочь, если бы вы опубликовали все это. Сказав, что:

Кроме пропущенного закрывающего "}", ваш код прекрасно скомпилируется для меня.

Однако этот цикл никогда не будет выполнен:

for(int i = 5; i <= -1; i--) {

Возможно, выхочу что-то ближе к этому:

for(int i = 5; i >= 0; i--) {
...