Новичок начал изучать 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("Игроки должны попробовать еще раз.");
}
}
}
}
}
Код не устарел. Я не читал "Head First Java" и не знаю, внятно ли там сказано, что каждая переменная должна относится к какому-то типу, а этот тип должен быть либо предопределенным типом Java, либо классом, определенным в вашем коде. Java -- это строго-типизированный язык.
У вас описываются переменные p1, p2, p3 типа Player (строки, на которые ругается компилятор), но тип Player не описан в вашем коде и не является стандартным типом Java. Читайте книгу внимательнее, там рядом, скорее всего, есть еще один кусок кода, где описан тип Player.
И чтобы лучше понимать основные концепции языка, есть смысл почитать и другие книги по Java.
И кстати, когда компилятор ругается, читайте его (компилятора) сообщения. Иногда они настолько точно и ясно указывают на ошибку, что не возникает нужды задавать дополнительные вопросы.
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.
На следующей странице посмотри :)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей