java猜数字游戏二分法,java使用JOptionPane猜数字游戏

本文实例为大家分享了java实现猜数字游戏的具体代码,供大家参考,具体内容如下

一、我猜数字

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,"恭喜你猜对了!");

}

}

}

8827ef63ee0e285a9d75147dcc8d96cc.png

4265be2470efd83f224398d8f67e0f59.png

8c7106f0ec28d111123390b6d6e88431.png

f4fd27b4b4ea343c6087db87df13791d.png

9550e2dc54945371a346fab84c1bfb1d.png

15fba716bc08c8064d49b00b114e3efa.png

61812dd14ef823c1ca4b1ef36361a891.png

24316dcaf03097fd2b43de0586cc4246.png

二、电脑猜数字

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;

}

}

更多有趣的经典小游戏实现专题,也分享给大家:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值