🍑前置知识
既然是猜数字那么就要生成一个随机数
在Java中要生成一个指定范围之内的随机数字有两种方法:一种是调用 Math 类的 random() 方法,一种是使用 Random 类。
📝Random 类提供了丰富的随机数生成方法,可以产生 boolean、int、long、float、byte 数组以及 double 类型的随机数,这是它与 random() 方法最大的不同之处。random() 方法只能产生 double 类型的 0~1 的随机数。
Random 类位于 java.util 包中,该类常用的有如下两个构造方法。
- Random():该构造方法使用一个和当前系统时间对应的数字作为种子数,然后使用这个种子数构造 Random 对象。
- Random(long seed):使用单个 long 类型的参数创建一个新的随机数生成器。
比如要随机生成一个整数的方法就是:
import java.util.Random; public class Main { public static void main(String[] args) { Random r = new Random(); // 实例化一个Random类 int num = r.nextInt(101); // 用Random类中的nextInt(int n)方法生成一个【0,n)的随机数 System.out.println(num); } }
🍑题目要求
📝猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。
📝程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。
🍑代码实现
import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] args) { Random r = new Random(); // 实例化一个Random类 int num = r.nextInt(101); // 用Random类中的nextInt(int n)方法生成一个【0,n)的随机数 Scanner in = new Scanner(System.in); System.out.println("请输入最多能猜几次:"); int max = in.nextInt(); // max代表用户最多能猜多少次 System.out.println("随机数已经产生,猜猜看,你一共有" + max + "次猜的机会!"); int flag = 0; // 如果在5次内猜对了就把flag置为1,作为标志 for (int i = 1; i <= max; i++) { System.out.println("请输入你第" + i + "次猜的结果:"); int n = in.nextInt(); // 输入自己本次所猜的数 if (n < 0) { System.out.println("Game Over"); // 在到达 return; } if (n > num) { System.out.println("Too big"); // 猜大了 } else if (n < num) { System.out.println("Too small"); // 猜小了 } else { // 此时说明猜对了 flag = 1; if (i <= 1) System.out.println("Bingo!"); else if (i <= 3) System.out.println("Lucky You!"); else System.out.println("Good Guess!"); break; // 如果猜中了,即使没有到最多可以猜的次数,也需要退出 } } if (flag == 0) System.out.println("Game Over"); } }
🍑测试