【问题标题】:Java Random number guessing game with dialog box带对话框的Java随机数猜谜游戏
【发布时间】:2017-10-15 21:48:09
【问题描述】:

好的,我知道以前有人问过这个问题,但我就是不知道出了什么问题。以下是我的指示:

“编写一个程序,生成一个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++;
            }  
        }       
        while (guess == rnumber)
        {                
            guesses++;
            JOptionPane.showMessageDialog(null,"Congratulations! The correct " +
                "number is " + rnumber + ",and you had" + guesses + "guesses.");

        }

    System.exit(0);
    }  
}

【问题讨论】:

  • 如果您希望人们尝试阅读,请正确缩进您的代码。

标签: java random while-loop


【解决方案1】:

首先,将while (guess == rnumber) { 更改为if(guess == rnumber) {,使其只执行一次。
至于你的问题的答案,你需要设置猜测和答案。
我建议在控制台中执行此操作,即设置java.util.Scanner.nextLine(); 的答案,然后猜测相同的内容。在 JOptionPanes 上做到这一点并不容易。

【讨论】:

    【解决方案2】:

    您的程序构造不正确。您被要求编写的简单算法的实现几乎没有重要问题。可以这样表述(这里有一些伪代码):

    begin
    
     guess <- 0
     guesses <- 0
     randnum <- new random number [1,1000]
     do
        guess <- ask user input
        guesses++
        if guess > randnum
            show "Too high"
        if guess < randnum
            show "Too low"
     while guess != randnum
    
     congrats  // guess = randnum
     show number of guesses
    
    end
    

    您的代码看起来不像这样。检查您的 if 语句、条件和循环。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 2018-09-11
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多