public class GameLauncher {
public static void main(String[] args) {
GuessGame game = new GuessGame();
game.startGame();
}
}
public class Player {
int number = 0;
public void guess() {
number = (int) (Math.random() * 10);
System.out.println("I'm guessing " + number);
}
}
public class GuessGame {
public void startGame() {
Player p1 = new Player();
Player p2 = new Player();
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("I'm Thinking of a number between 1 and 10");
while (true) {
System.out.println("Number to guess is " + targetNumber);
p1.guess();
p2.guess();
p3.guess();
guessp1 = p1.number;
System.out.println("Player one guessed " + guessp1);
guessp2 = p2.number;
System.out.println("Player two guessed " + guessp2);
guessp3 = p3.number;
System.out.println("Player three guessed " + guessp3);
if (guessp1 == targetNumber) {
p1isRight = true;
}
if (guessp2 == targetNumber) {
p2isRight = true;
}
if (guessp3 == targetNumber) {
p3isRight = true;
}
if (p1isRight || p2isRight || p3isRight) {
System.out.println("We have a winner!");
System.out.println("Was player one correct? "
+ p1isRight);
System.out.println("Was player two correct? "
+ p2isRight);
System.out.println("Was player three correct? "
+ p3isRight);
} else {
System.out.println("None them players were correct man.");
}
}
}
}
Ok I have gone over it so many times but whenever i run it, it display says that all of the players were correct? Even though just before it clearly prints the actual number the players guessed and they are not true.
You forgot to reset the three
isRightvariables tofalseafter each go-round of the loop.So they stay
truefrom previous runs.