为什么总是发现它们都是真的?

发布于 2024-12-29 07:16:16 字数 2188 浏览 2 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

饮惑 2025-01-05 07:16:16

您忘记在每次循环后将三个 isRight 变量重置为 false

因此,它们在之前的运行中保持true

You forgot to reset the three isRight variables to false after each go-round of the loop.

So they stay true from previous runs.

双手揣兜 2025-01-05 07:16:16

更改

if (guessp1 == targetNumber) {
    p1isRight = true;
}

if (guessp2 == targetNumber) {
    p2isRight = true;
}

if (guessp3 == targetNumber) {
    p3isRight = true;
}

p1isRight = guessp1 == targetNumber;
p2isRight = guessp2 == targetNumber;
p3isRight = guessp3 == targetNumber;

当前代码的方式,当您再次执行循环时,您永远不会覆盖“true”值。

Change

if (guessp1 == targetNumber) {
    p1isRight = true;
}

if (guessp2 == targetNumber) {
    p2isRight = true;
}

if (guessp3 == targetNumber) {
    p3isRight = true;
}

to

p1isRight = guessp1 == targetNumber;
p2isRight = guessp2 == targetNumber;
p3isRight = guessp3 == targetNumber;

The way your current code is, you never overwrite the "true" value when you go through the loop again.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文