java猜数字游戏,使用JOptionPane

一、我猜数字

import java.util.Random;
import javax.swing.JOptionPane;
public class MyRandom
{
    public static void main(String[] args)
    {
        //生成随机数
        Random randomNumber = new Random();
        int myNum = randomNumber.nextInt(10);
        String guessNum = "";
        int guessNumber = 0;
        //猜对猜错的标识
        boolean sign = false;
        //猜数字的循环
        do{
            try{
                guessNum = JOptionPane.showInputDialog(null,"欢迎来到猜数字游戏!,请输入数字");
                guessNumber = Integer.parseInt(guessNum);
                if(guessNumber > myNum)
                {
                    JOptionPane.showMessageDialog(null,"猜大了");
                }    
                else if(guessNumber < myNum)
                {
                    JOptionPane.showMessageDialog(null,"猜小了");
                }
                else
                {
                    sign = true;
                }
            }catch(NumberFormatException e){
                JOptionPane.showMessageDialog(null,"输入格式错误");
            }
        }while(guessNumber != myNum);
        
        if(sign)
        {
            JOptionPane.showMessageDialog(null,"恭喜你猜对了!");
        }
    }
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、电脑猜数字

import javax.swing.JOptionPane;
import java.util.ArrayList;
import java.util.Random;

public class ComRandom
{
    //给猜的数设置一个范围
    int low = 0, high = 10;
    boolean leave = false;
    public void run()
    {
        int myIntNumber = 0;
        String myNumber;
        try{
            //给电脑一个数让他猜
            myNumber = JOptionPane.showInputDialog(null,"给我一个0-10的数字,让我(电脑)来猜");
            try{
                myIntNumber = Integer.parseInt(myNumber);
            }catch(NumberFormatException e){
                JOptionPane.showMessageDialog(null,"异常");
                leave = true;

            }
        }catch(NullPointerException e){
            
            JOptionPane.showMessageDialog(null,"拜拜");
        }
 
        if(!leave){
        //电脑随机猜一次,生成一个随机的数字
        Random randomGenerator= new Random();
        int guessNumber = randomGenerator.nextInt(10);
        //循环判断电脑猜的数字是大还是小
        //定义两个字符串,提示电脑是猜大了还是猜小了。
        String output = "";
        try{
            output = JOptionPane.showInputDialog(null,"是" + guessNumber + "!我猜对了吗?");
            while(!output.equals("猜对了"))
            {
                if(output.equals("猜大了"))
                {
                    guessNumber = guessNumber(guessNumber,myIntNumber);
                }
                else if(output.equals("猜小了"))
                {
                    guessNumber = guessNumber(guessNumber, myIntNumber);
                }
                else
                {
                    JOptionPane.showMessageDialog(null,"我没听懂你在说什么...");
                }
                
                try{
                    output = JOptionPane.showInputDialog(null,"是" + guessNumber + "!我猜对了吗?");
                }catch(NullPointerException e)
                {
                    JOptionPane.showMessageDialog(null,"异常");
                }
            }
        }catch(NullPointerException e){
            JOptionPane.showMessageDialog(null,"异常");
        }
        }
        leave = false;
    }
    
    /**
     * 二分法猜数字
     */
    private int guessNumber(int guess,int number)
    {
        if(guess < number)
        {
            //答案是5 我猜的是2
            low = guess + 1;
        }
        else if(guess > number)
        {
            //答案是6我猜的是8
            high = guess - 1;
        }
        guess = (high + low) / 2;
        return guess;
    }
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘璐菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值