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

猜谜游戏-如何记住猜谜范围

咸利
2023-03-14

我想做一个简单的猜谜游戏,电脑应该猜出我在0和100之间选择的数字。尝试运行它,如果数字太低按1,如果数字太高按2。

1.如果我选择50,计算机猜测41,我按1,因为数字太低了

System.out.print("Enter a number: ");
Scanner input = new Scanner(System.in);
int num=input.nextInt();
int ans=0;

Random rand = new Random();
int guess=rand.nextInt(100);

while(guess!=num) {
    System.out.print("Is it " + guess + " ? ");
    ans=input.nextInt();
    if (ans==1) {
        guess=rand.nextInt(100-guess+1)+guess;
    }
    else if (ans==2) {
        guess=rand.nextInt(100-guess+1)+0;
    }
}
System.out.print("Computer guessed: " + guess);

是55吗?2

是26吗?1

是35吗?1

是97吗?2

共有1个答案

刘玉石
2023-03-14

您应该使用两个变量:一个用于上限,一个用于下限。

while(guess!=num) {
    System.out.print("Is it " + guess + " ? ");
    ans=input.nextInt();
    if (ans==1) {
        lowerLimit = guess; // Your new lower limit .
        guess=lowerLimit+ (upperLimit- lowerLimit) * r.nextInt();
    }
    else if (ans==2) {
        upperLimit = guess; // Your new upper limit.
        guess=lowerLimit+ (upperLimit- lowerLimit) * r.nextInt();
    }
}
 类似资料:
  • 编写程序生成一个1-100之间的随机数,并将其作为秘密数字保存。然后程序将检查用户是否能猜出秘密号码。用户可以继续猜测数字,直到找到数字或者用户可以输入0,这将终止程序。 null 我被if语句卡住了,也许我的结构不正确。我不确定。

  • 我在做一个数字猜谜游戏: 计算机在间隔内生成一个数字 我试着猜测它,并收到一个回复,不管它是高于/低于我的猜测,还是等于我的猜测,我赢了 有一个可以猜测的间隔,还有一个猜测尝试限制

  • 我已经停止编程一段时间了。大概4年左右,我只是想搞乱它,所以我决定做一个高:低数字猜谜游戏。(猜一个数字1-100,如果你猜得太高或太低,程序会说)我完全忘了我该怎么做:

  • 好吧,我知道这个以前有人问过,但我就是想不出哪里出了问题。以下是我的说明: “编写一个程序,生成1到1000之间的随机数。然后让用户猜猜数字是多少。如果用户的猜测值高于随机数,程序应该显示“太高,再试一次”。如果用户的猜测值低于随机数,程序应该显示“太低,再试一次”。程序应该使用一个循环,直到用户正确猜测出随机数。 还有,保持用户猜测次数的计数。当用户正确猜测随机数时,程序应该显示猜测的次数。输入

  • 我已经尝试自己学习Java大约一个星期了,我决定尝试应用我(相当有限)的知识来制作一个简单的猜谜游戏。