当前位置: 首页 > 知识库问答 >
问题:

我的猜测游戏在一次迭代后就停止了

胡永逸
2023-03-14

我的目标是创建一个有三个“玩家”对象的“猜谜游戏”。

我创建了一个名为“target”的变量,其中包含用户的输入。

之后,我对三个“玩家”对象中的每一个运行“猜测”方法,然后运行while循环,直到它被打破。循环中的if语句检查玩家对象的猜测是否等于目标,如果该语句为真,则中断循环。

问题是循环在一次迭代后就停止了。

以下是代码:

import java.util.*;
 class testDrive{
    public static void main(String[] args){
        //code 
        Scanner sc = new Scanner(System.in);
        player p1 = new player();
        player p2 = new player();
        player p3 = new player();
        System.out.println("Enter p1's name:");
        p1.name = sc.nextLine();
        System.out.println("Enter p2's name:");
        p2.name = sc.nextLine();
        System.out.println("Enter p3's name:");
        p3.name = sc.nextLine();
        System.out.println("Enter a number between 0 and 9 for the players to guess");
        int target = sc.nextInt();
        p1.guessing();
        p2.guessing();
        p3.guessing();
        while(true){
            if(target == p1.guess){
                System.out.println(p1.name+" won");
                break;
            }
            else if(target == p2.guess){
                System.out.println(p2.name+" won");
                break; 
            }
            else if(target == p3.guess){
                System.out.println(p3.name+" won");
                break;
            }
            else{
                continue;
            }
        }
}}
 class player{
    int guess;
    String name;
    public void guessing(){
        guess =(int)Math.floor(Math.random() * 9);
        System.out.println(name+"'s guess is "+guess);
    }
}

共有1个答案

蒋啸
2023-03-14

每次迭代都需要扫描新输入<代码>继续 不会自动执行。

为了在游戏结束时开始一个新游戏,将代码包装在一个无限的当循环中:

import java.util.*;
 class testDrive{
    public static void main(String[] args){
        //code 
        Scanner sc = new Scanner(System.in);
        while(true){
            System.out.println("Starting a new game.");
            player p1 = new player();
            player p2 = new player();
            player p3 = new player();
            System.out.println("Enter p1's name:");
            p1.name = sc.nextLine();
            System.out.println("Enter p2's name:");
            p2.name = sc.nextLine();
            System.out.println("Enter p3's name:");
            p3.name = sc.nextLine();
            System.out.println("Enter a number between 0 and 9 for the players to guess");
            int target = sc.nextInt();
            p1.guessing();
            p2.guessing();
            p3.guessing();
            while(true){
                if(target == p1.guess){
                    System.out.println(p1.name+" won");
                    break;
                }
                else if(target == p2.guess){
                    System.out.println(p2.name+" won");
                    break; 
                }
                else if(target == p3.guess){
                    System.out.println(p3.name+" won");
                    break;
                }
                else{
                    System.out.println("You didn't win. Enter a number between 0 and 9 for the players to guess");
                    target = sc.nextInt();
                }
            }
       }
        
}}
 class player{
    int guess;
    String name;
    public void guessing(){
        guess =(int)Math.floor(Math.random() * 9);
        System.out.println(name+"'s guess is "+guess);
    }
}
 类似资料:
  • 我在做一个数字猜谜游戏: 计算机在间隔内生成一个数字 我试着猜测它,并收到一个回复,不管它是高于/低于我的猜测,还是等于我的猜测,我赢了 有一个可以猜测的间隔,还有一个猜测尝试限制

  • 让我们一起动手完成一个项目,来快速上手 Rust!本章将介绍 Rust 中常用的一些概念,并通过真实的程序来展示如何运用它们。你将会学到更多诸如 let、match、方法、关联函数、外部 crate 等很多的知识!后继章节会深入探索这些概念的细节。在这一章,我们将练习基础。 我们会实现一个经典的新手编程问题:猜猜看游戏。它是这么工作的:程序将会随机生成一个 1 到 100 之间的随机整数。接着它会

  • 问题内容: 嗨,我正在尝试使用Math.random生成一个介于0到100之间的随机数,然后要求用户输入一个介于0到100之间的数字或退出-1。如果该数字超出范围(而不是-1),请要求用户输入一个新数字。如果用户没有正确猜出该数字,请告诉用户该随机数是高于还是低于猜出的数字。让用户猜测,直到他们输入正确的数字或​​输入-1。如果他们猜到正确的数字,请告诉用户尝试了多少次,然后重新开始游戏。它将继续

  • 假设我有一个文件: 我想根据日期将行分隔为不同的文件。我制作了以下脚本: 当我执行时,我得到以下内容: 如果我在没有cat...行的情况下尝试,脚本会打印所有的回显命令,如果我在命令行上只尝试cat|grep命令,它就可以工作。 你知道为什么它会这样吗?

  • 我是JAVA新手,我一直在写一个数字猜谜游戏的代码,计算机从0-500的条件下选择数字:如果数字太低,用户输入0,计算机猜更低的数字;如果数字太高,用户输入1,计算机猜更高的数字 以5个猜测结束游戏 任何建议都将不胜感激!!!:d

  • 运行命令后: php artisan队列:工作 预期行为:队列工作人员将继续运行,直到停止或失败。 实际行为:无论作业是否失败或成功完成,队列工作者都会在每个作业后停止。 以上与Laravel 5.2一致https://laravel.com/docs/5.2/queues#daemon-queue-worker 但是,由于我运行的是Laravel 5.7,因此我希望出现中描述的行为https:/