为什么总是发现它们都是真的?
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.");
}
}
}
}
好吧,我已经检查过很多次了,但是每当我运行它时,它都会显示所有玩家都是正确的?即使在它清楚地打印出玩家猜测的实际数字之前,它们也是不正确的。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您忘记在每次循环后将三个
isRight
变量重置为false
。因此,它们在之前的运行中保持
true
。You forgot to reset the three
isRight
variables tofalse
after each go-round of the loop.So they stay
true
from previous runs.更改
为
当前代码的方式,当您再次执行循环时,您永远不会覆盖“true”值。
Change
to
The way your current code is, you never overwrite the "true" value when you go through the loop again.