Игра в угадывание(Head First Java)

164
04 января 2019, 01:10

Новичок начал изучать Head First Java столкнулся с проблемой что код используемый в этой книге устарел, помогите довести задачу до рабочего состояния)

public class GuessGame {
    public static void main(System[] args) {
        Player p1; //ругается на этом моменте
        Player p2; //ругается на этом моменте
        Player p3; //ругается на этом моменте
        public void startGame(){
            p1 = new Player();
            p2 = new Player();
            p3 = new Player();
            int guessp1 = 0;
            int guessp2 = 0;
            int guessp3 = 0;
            boolean p1isRight = false;
            boolean p2isRight = false;
            boolean p3isRight = false;
            int targetNumber = (int) (Math.random() * 10);
            System.out.println("Я загадываю число от 0 до 9...");
            while (true) {
                System.out.print("Число, которое нужно угадать, - " + targetNumber);
                p1.guess();
                p2.guess();
                p3.guess();
                guessp1 = p1.number;
                System.out.print("Первый игрок думает, что это " + guessp1);
                guessp2 = p2.number;
                System.out.print("Первый игрок думает, что это " + guessp2);
                guessp3 = p3.number;
                System.out.print("Первый игрок думает, что это " + guessp3);
                if (guessp1 == targetNumber) {
                    p1isRight = true;
                }
                if (guessp2 == targetNumber) {
                    p2isRight = true;
                }
                if (guessp3 == targetNumber) {
                    p3isRight = true;
                }
                if (p1isRight || p2isRight || p3isRight) {
                    System.out.println("У нас есть победитель!");
                    System.out.println("Первый игрок угодал?" + p1isRight);
                    System.out.println("Второй игрок угодал?" + p2isRight);
                    System.out.println("Третий игрок угадал?" + p3isRight);
                    System.out.print("КОнец игры.");
                    break;
                } else {
                    System.out.print("Игроки должны попробовать еще раз.");
                }
            }
        }
    }
}
Answer 1

Код не устарел. Я не читал "Head First Java" и не знаю, внятно ли там сказано, что каждая переменная должна относится к какому-то типу, а этот тип должен быть либо предопределенным типом Java, либо классом, определенным в вашем коде. Java -- это строго-типизированный язык.
У вас описываются переменные p1, p2, p3 типа Player (строки, на которые ругается компилятор), но тип Player не описан в вашем коде и не является стандартным типом Java. Читайте книгу внимательнее, там рядом, скорее всего, есть еще один кусок кода, где описан тип Player. И чтобы лучше понимать основные концепции языка, есть смысл почитать и другие книги по Java.
И кстати, когда компилятор ругается, читайте его (компилятора) сообщения. Иногда они настолько точно и ясно указывают на ошибку, что не возникает нужды задавать дополнительные вопросы.

Answer 2

System.out.print("Первый игрок думает, что это " + guessp2); - первый замените на второй и третий.

У вас метод startGame() находится в main(). Вынесите его в отдельный метод.

Рабочий код:

public static void main(System[] args) { starGame(); }
        public void startGame(){
            p1 = new Player();
            p2 = new Player();
            p3 = new Player();
            ...
            }

Так же у вас должен быть определен класс Player.

Answer 3

На следующей странице посмотри :)

READ ALSO
В чем отличие notify, notifyall?

В чем отличие notify, notifyall?

Я знаю, что notify() - пробуждает любой один поток, а notifyAll() - пробуждает все и даёт доступ одномуНо в чём отличие? в одних случаях работает notify(),...

222
Генерация POJO классов из из схемы данных в виде файла .xml?

Генерация POJO классов из из схемы данных в виде файла .xml?

Всем привет, подскажите пожалуйста, как можно cгенерировать POJO классы из схемы данных в виде файлаxml?

163
Можно ли отсортировать ArrayList?

Можно ли отсортировать ArrayList?

Имеется ArrayList вида String : intКак отсортировать его по возрастанию/убыванию по "колонке" int ?

159
Первая JVM для платформы Java SE

Первая JVM для платформы Java SE

Собственно говоря, сам вопрос кроется в залоговке данной темыЗнаю, что примерно с 2002 года освной реализацией JVM для платформы Java SE является...

199