本文实例为大家分享了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,"恭喜你猜对了!"); } } }
二、电脑猜数字
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; } }