Ошибка времени выполнения NullPointerException

1

Я новичок в java и работаю над программой, которая должна имитировать игру Mastermind. Вот описание: Напишите приложение на Java, которое позволяет пользователю играть в игру "Быки и коровы" против компьютера. Игра работает следующим образом: компьютер выбирает 4-значное число в секрете. Все цифры должны быть разными. Затем пользователь угадывает номер, и компьютер предоставляет количество соответствующих цифр. Если совпадающая цифра находится в правильном положении, это "бык", если он находится в другом положении, это "корова",

Есть два класса, которые мне разрешено иметь: Oracle и Game. Класс Oracle генерирует 4-значное число, которое компьютер выбирает и вычисляет количество быков и коров в игре. Класс игры получает количество быков и коров от Oracle и сообщает об этом. Я получаю эту ошибку при запуске программы:

ошибка, кажется, здесь: в Game.play(Game.java:34) на BullsAndCows.main(BullsAndCows.java:5)

Можете ли вы помочь мне разобраться, что случилось? Большое спасибо.

это изображения классов Oracle и Game, а также основной метод

Теги:
class
nullpointerexception

1 ответ

0
Лучший ответ

Переменный computer члена Oracle не инициализирован.

Это потому, что на конструктор Oracle, вы не инициализирует переменную - член computer, но другую переменную с тем же именем, что местное к методу.

Чтобы исправить это, в строке 21 Oracle замените это:

Oracle computer = new Oracle();

этим:

computer = new Oracle();
  • 0
    Андрес, большое спасибо - это помогло! У меня теперь новая проблема ... В классе Game я пытаюсь настроить ее так, чтобы игра остановилась, если игрок угадал все 4 числа правильно. Я получаю ошибку компиляции, говорящую, что он не может найти int bulls в классе Game. Но разве он не должен знать это из класса Oracle? Как мне это сделать? Я обновил файлы Pic в предыдущей ссылке. Большое спасибо.
  • 0
    Кроме того, я попытался инициализировать быков в конструкторе Oracle, и это не помогает.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню