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

带有对话框的Java随机数猜谜游戏

蒋高扬
2023-03-14

好吧,我知道这个以前有人问过,但我就是想不出哪里出了问题。以下是我的说明:

“编写一个程序,生成1到1000之间的随机数。然后让用户猜猜数字是多少。如果用户的猜测值高于随机数,程序应该显示“太高,再试一次”。如果用户的猜测值低于随机数,程序应该显示“太低,再试一次”。程序应该使用一个循环,直到用户正确猜测出随机数。
还有,保持用户猜测次数的计数。当用户正确猜测随机数时,程序应该显示猜测的次数。输入和输出应该用对话框和消息框来完成。“

我整个星期都在为此工作和阅读,这是我的第二次化身。我正处于这样一个地步,我的头被所有的阅读扭曲了。我让它在对话框中要求一个数字,然后什么都没有。为了让循环继续下去,我错过了什么?请解释是什么和为什么。提前感谢您的光临。

import java.util.Scanner;        // Needed for the Scanner class.
import java.util.Random;         // Needed for the Random class.
import javax.swing.JOptionPane;  // Needed for JOptionPane.

/**
This program generates a random number guessing game.
*/

public class GuessingNumbersGame
{
    public static void main(String[] args)
    {
// Create an object and assign a whole random number 
// from 1 to 1000 to it.
        int rnumber;`
        Random randomNumbers = new Random();
        rnumber = randomNumbers.nextInt(1000) + 1; 

// Ask the user to guess the random number.
        String answer;
        int guess; 
        answer = JOptionPane.showInputDialog("Enter a whole  " +
            "number between 1 and 1000.");
        guess = Integer.parseInt(answer);
        int guesses;
        guesses = 0;                                                          

// Create a loop of user guesses versus the random number
// until the user answers correctly and keep track of the 
// number of times the user guesses. 
        while (guess != rnumber);
        {                                   
            if (guess > rnumber)
            {
                JOptionPane.showMessageDialog(null,"Too high, try again.");
                guess = Integer.parseInt(answer);
                guesses++;
            }            
            if (guess < rnumber)
            {                         
                JOptionPane.showMessageDialog(null,"Too low, try again.");
                guesses++;
            }  
        }       
        html" target="_blank">while (guess == rnumber)
        {                
            guesses++;
            JOptionPane.showMessageDialog(null,"Congratulations! The correct " +
                "number is " + rnumber + ",and you had" + guesses + "guesses.");

        }

    System.exit(0);
    }  
}

共有1个答案

盛超
2023-03-14

首先,将while(gues==rnumber){更改为if(gues==rnumber){,以便它只执行一次。
至于问题的答案,您需要设置guest和answer。
我建议在控制台中这样做,将answer设置为java.util.scanner.nextline();,然后将guest设置为相同的内容。在JoptionPanes上这样做并不容易。

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

  • 我的程序应该要求用户猜测 0 到 100 之间的数字,但我似乎无法正确输出。目前,如果用户数大于随机数,它会打印出无限数量的“您的数字太高”。此外,如果第一个 UserGuess 很低,那么以下所有数字都将具有相同的提示:(“您的数字太低”),尽管它们实际上大于随机数。我不知道我做错了什么。任何帮助将不胜感激。谢谢!

  • 我想做一个简单的猜谜游戏,电脑应该猜出我在0和100之间选择的数字。尝试运行它,如果数字太低按1,如果数字太高按2。 1.如果我选择50,计算机猜测41,我按1,因为数字太低了 是55吗?2 是26吗?1 是35吗?1 是97吗?2

  • Java,Net beans 8.2 } 输入你的猜测(0退出):20你的猜测太低了

  • 编写程序生成一个1-100之间的随机数,并将其作为秘密数字保存。然后程序将检查用户是否能猜出秘密号码。用户可以继续猜测数字,直到找到数字或者用户可以输入0,这将终止程序。 null 我被if语句卡住了,也许我的结构不正确。我不确定。