猜字游戏的各种玩法(附详细源码+演示结果),你都玩过吗?

摘要:
  猜数游戏,随机生成一个0到100之间的整数,从键盘输入数字进行猜数。
下面列举两大类玩法,其中每一类还有两种规则,分别如下示例:

一、第一大类(只能猜5次)

例如:
  一共可以猜5次,如果猜小了,在控制台输出猜小了;如果猜大了,在控制台输出猜大了;如果猜对了在控制台输出恭喜您猜对了,并结束游戏。

1、当输入非数字字符时,也算次数。

参考代码1:

package com.gx.demo;

import java.util.Scanner;

public class Test {
	public static void main(String[] args) {
		// 生成 0-100 随机数;Math.random():随机生成一个0-1(不包括1)的小数,*100,就是0-100啦
		int num = (int) (Math.random() * 100);
		System.out.println(num);
		Scanner sc = new Scanner(System.in);// 声明扫描仪变量
		// 遍历
		for (int i = 1; i < 6; i++) {
			System.out.println("请输入数字:");// 系统提示输入
			int count = 0;// 定义变量,用于接收键盘输入的数字
			try {
				count = sc.nextInt();
				// 判断大小
				if (count > num) {
					System.out.println("很遗憾,您猜的太大了");
				} else if (count < num) {
					System.out.println("很遗憾,您猜的太小了");
				} else {
					System.out.println("恭喜您,猜对了");
					break;// 直接跳出
				}
			} catch (Exception e) {
				// e.printStackTrace();
				System.out.println("输入有误,只能输入数字");
				sc.next();// 继续读取下一个值
			}
			if (i == 5) {
				System.out.println("您的次数用光啦");
			}
		}
	}

}

演示结果:
在这里插入图片描述

2、当输入非数字字符时,不算次数。

参考代码2:

package com.gx.demo;

import java.util.Scanner;

public class Test2 {
	public static void main(String[] args) {
		// 生成 0-100 随机数;Math.random():随机生成一个0-1(不包括1)的小数,*100,就是0-100啦
		int num = (int) (Math.random() * 100);
		System.out.println(num);
		Scanner sc = new Scanner(System.in);// 声明扫描仪变量
		int a = 0;
		// 遍历
		while (true) {
			System.out.println("请输入数字:");// 系统提示输入
			int count = 0;// 定义变量,用于接收键盘输入的数字
			try {
				count = sc.nextInt();//如果这里接收到非数字字符,则执行catch里面的代码,不再执行try里面的代码
				if (true) {
					a += 1;
					if (a == 5) {
						System.out.println("您已累计猜错5次啦");
						break;//跳出循环
					}
				}

				// 判断大小
				if (count > num) {
					System.out.println("很遗憾,您猜的太大了");
				} else if (count < num) {
					System.out.println("很遗憾,您猜的太小了");
				} else {
					System.out.println("恭喜您,猜对了");
					break;//跳出循环
				}
			} catch (Exception e) {
				// e.printStackTrace();
				System.out.println("输入有误,只能输入数字");
				sc.next();// 继续读取下一个值
			}
		}		
	}

}

演示结果:
在这里插入图片描述

二、第二大类(可以猜无限次)

例如:
  一共可以猜无限次,如果猜小了,在控制台输出猜小了;如果猜大了,在控制台输出猜大了;如果猜对了在控制台输出恭喜您经过n次终于猜对了,并结束游戏。

3、当输入非数字字符时,不算次数。(基于2改造)

参考代码3:

package com.gx.demo;

import java.util.Scanner;

public class Test3 {
	public static void main(String[] args) {
		// 生成 0-100 随机数;Math.random():随机生成一个0-1(不包括1)的小数,*100,就是0-100啦
		int num = (int) (Math.random() * 100);
		System.out.println(num);
		Scanner sc = new Scanner(System.in);// 声明扫描仪变量
		int a = 0;
		// 遍历
		while (true) {
			System.out.println("请输入数字:");// 系统提示输入
			int count = 1;// 定义变量,用于接收键盘输入的数字
			try {
				count = sc.nextInt();// 如果这里接收到非数字字符,则执行catch里面的代码,不再执行try里面的代码
				a += 1;//记录次数
				// 判断大小
				if (count > num) {
					System.out.println("很遗憾,您猜的太大了");
				} else if (count < num) {
					System.out.println("很遗憾,您猜的太小了");
				} else {
					System.out.println("恭喜您经过" + a + "次,终于猜对了");
					break;// 跳出循环
				}
			} catch (Exception e) {
				// e.printStackTrace();
				System.out.println("输入有误,只能输入数字");
				sc.next();// 继续读取下一个值
			}
		}
	}

}

演示结果:
在这里插入图片描述

4、当输入非数字字符时,也算次数。(基于3改造)

参考代码4:

package com.gx.demo;

import java.util.Scanner;

public class Test4 {
	public static void main(String[] args) {
		// 生成 0-100 随机数;Math.random():随机生成一个0-1(不包括1)的小数,*100,就是0-100啦
		int num = (int) (Math.random() * 100);
		System.out.println(num);
		Scanner sc = new Scanner(System.in);// 声明扫描仪变量
		int a = 0;
		// 遍历
		while (true) {
			System.out.println("请输入数字:");// 系统提示输入			
			int count = 1;// 定义变量,用于接收键盘输入的数字
			try {
				count = sc.nextInt();// 如果这里接收到非数字字符,则执行catch里面的代码,不再执行try里面的代码
				a += 1;//记录次数
				// 判断大小
				if (count > num) {
					System.out.println("很遗憾,您猜的太大了");
				} else if (count < num) {
					System.out.println("很遗憾,您猜的太小了");
				} else {
					System.out.println("恭喜您经过" + a + "次,终于猜对了");
					break;// 跳出循环
				}
			} catch (Exception e) {
				// e.printStackTrace();
				System.out.println("输入有误,只能输入数字");
				a += 1;//记录次数
				sc.next();// 继续读取下一个值
			}
		}		
	}

}

演示结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44563573/article/details/103364116