Вопрос №1150 от пользователя Андрей Аникин в уроке «Модуль 4. Урок 4. Оператор SWITCH в Java.», курс «Введение в Java»

Андрей Аникин

   public Player currentPlayer() {
        // BEGIN
        int sumFiguresOne = 0;
        int sumFiguresTwo = 0;
        for (int i =0; i<=2; i+=1) {
            for (int j = 0; j<=2; j+=1) {
                if (this.board.getFigure(i,j) == this.players[0].getFigure()) {
                    sumFiguresOne+=1;
                }
                if (this.board.getFigure(i,j) == this.players[1].getFigure()) {
                    sumFiguresTwo+=1;
                }

            }
        }
        if ( sumFiguresOne>= sumFiguresTwo && this.players[0].getFigure().getFigure() == "X") {
            return this.players[0];
        }
        return this.players[1];
        // END

    }
    public Player winner() {
        // BEGIN
        for (int i = 0; i<=2; i+=1) {
            if ( this.board.getFigure(i,0) == this.board.getFigure(i,1) &&  this.board.getFigure(i,0) == this.board.getFigure(i,2)) {
                if ( this.board.getFigure(i,0) == this.players[0].getFigure()) {
                    return this.players[0];
                }   else {
                    return this.players[1];
                }
            }
            if ( this.board.getFigure(0,i) == this.board.getFigure(1,i) &&  this.board.getFigure(0,i) == this.board.getFigure(2,i)) {
                if ( this.board.getFigure(0,i) == this.players[0].getFigure()) {
                    return this.players[0];
                }   else {
                    return this.players[1];
                }
            }

        }
        if (this.board.getFigure(0,0) == this.board.getFigure(1,1) && this.board.getFigure(0,0) == this.board.getFigure(2,2)) {
            if (this.board.getFigure(0,0) == this.players[0].getFigure()) {
                return this.players[0];
            }   else    {
                return this.players[1];
            }
        }
        if (this.board.getFigure(2,0) == this.board.getFigure(1,1) && this.board.getFigure(2,0) == this.board.getFigure(0,2)) {
            if (this.board.getFigure(2,0) == this.players[0].getFigure()) {
                return this.players[0];
            }   else    {
                return this.players[1];
            }
        }
        return null;
        // END

    }

код выдает ошибку, но я не могу понять, где она(

1 0

Вячеслав Ковалевский

возможно ошибка больше чем одна, но:

if ( sumFiguresOne>= sumFiguresTwo && this.players[0].getFigure().getFigure() == "X") {

          return this.players[0];

        }

Если 0й игрок это - "Х" и он ходил чаще, то Вы возвращаете 0ого игрока, однако если "Х" ходил чаще, то сейчас ход 1ого игрока (нолика), а не игрока с фигуркой "Х"

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
2 февраля 8 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
2 февраля 8 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
2 февраля 8 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
2 февраля 8 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
2 февраля 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Новый
Создает веб-приложения со скоростью света
2 февраля 5 месяцев