繁体   English   中英

猜数字游戏

[英]Number guessing game

我一直在尝试做一个猜数字游戏。 它具有一组数字,并且一旦您猜对了正确的数字,就应该计算并显示您所猜测的次数。

目前程序运行前2个步骤,然后停止,请帮助解决此问题

import javax.swing.JOptionPane;  
import java.util.Scanner;
//Scott Timmerman TwentyQuestions

public class TwentyQuestions {

    public static void main(String[] args) {
        int number = 500000;
        int numberoftries = 0; 
        JOptionPane.showMessageDialog(null, "Scott Timmerman TwentyQuestions");
        Scanner input = new Scanner(System.in);
        int guess;
        boolean win = false;
        while (win == false) {

            JOptionPane.showInputDialog("Enter a number between 1 and 1,000,000" );
            guess = input.nextInt(); 
            numberoftries++; 
            if(guess == number) {
                win = true;
            }
            else if(guess > number){
                JOptionPane.showMessageDialog(null, "your guess " + guess + " was greater then the number");

            }
            else if (guess < number){ 
                JOptionPane.showMessageDialog(null, "your guess " + guess + " was less then the number");

            }
        }

        JOptionPane.showMessageDialog(null, "you lost!\n the number was " + number );
        JOptionPane.showMessageDialog(null, "you won!" + numberoftries + " tries");

        }


}
    ` 

似乎您希望用户在对话框而不是控制台中输入下一个猜测。 如果是这种情况,则需要使用JOptionPane.showInputDialog的返回值。 然后,返回值是用户在单击“ ok按钮之前输入的文本。 您将需要使用Integer.parseUnsignedInt东西将其隐瞒为整数,其中包括处理NumberFormatException (以防万一,他们键入的不是数字)。

所以像这样:

try {
    String guessText = JOptionPane.showInputDialog("Enter your next guess");
    int guess = Integer.parseUnsignedInt(guessText);
} catch (NumberFormatException ex) {
    ...
}

它停止了,因为程序等到您在控制台上而不是在Java Dialogue上提供值。 切换到控制台并在其中写入例如500,然后按Enter。 这是问题所在:扫描仪输入=新的Scanner(System.in);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM