前言:
目前姐妹们对“猜数字游戏java”大致比较重视,看官们都需要知道一些“猜数字游戏java”的相关知识。那么小编同时在网上汇集了一些有关“猜数字游戏java””的相关知识,希望各位老铁们能喜欢,姐妹们一起来了解一下吧!@Author : By Runsen
效果展现
猜数字游戏是一个简单,有趣的小游戏。游戏者通过输入一个指定区间的数字,与系统产生的随机数进行对比,然后输出相应的结果。
游戏运行时产生一个0-10之间的随机整数,要求用户从控制台输入数字
若输入的数字比产生的数字小,则输出:“太小了,再大一点!”;
若输入的数字比产生的数字大,则输出:“太大了,再小一点!”,
若输入的数字和产生的数字相等,则输出:“恭喜你猜对了!”然后退出程序
功能要求
猜数字:生成一个指定范围内的随机正整数,从命令行读取一个整数,如果和随机数相同,就 算猜中。
固定随机数的范围
支持每次猜数字游戏的猜测次数,在指定次数内没猜对,则猜数字失败,否则就是成功。
可以支持退出游戏
输出剩余的猜测次数
每次猜测后,如果未猜中,则提示本次猜测的数字比目标数字大还是小
游戏结束后,输出猜数字游戏的统计
没有猜中,要输出这次的目标数字
可以设置随机数的范围,可以设置最大猜测次数
功能分析
第一,需要是设置猜数的范围,和次数,如果超过这个次数就直over了。
第二,还有统计每次游戏的次数和猜中游戏的次数
第三,如果输入-1就是结束游戏,因此需要一个变量判断是不是在运行游戏。
最后,就是需要通过 Math.random生成一个随机数,判断猜数是不是相等,相等就是猜中,没有就次数加一。
第一步
我就设置1到8,一共猜数的次数是五次,
// 创建Scanner从控制台读取输入Scanner in = new Scanner(System.in);// 游戏设置int rangeStart = 1;int rangeEnd = 8;int guessTotal = 5;第二步
// 游戏统计int totalGameCount = 0;int totalCorrectCount = 0;第三步
boolean stopGame = false;while (!stopGame) { // 初始化本次游戏的变量 System.out.println("=================== 猜 数 字 ==================="); System.out.println("目标数已经生成,数字在" + rangeStart + "到" + rangeEnd + "之间," + "不包括这两个数。共有" + guessTotal + "次猜测的机会。输入-1随时结束游戏。"); // 本次游戏是否开始了 boolean gameStart = true; // 本次游戏是否开始了 boolean gameStart = true; // 本次是否猜中数字 boolean guessCorrect = false; while (guessLeft > 0) {}最后一步
最后一步,一步的逻辑比较复杂,我直接上所有的代码
import java.util.Scanner;public class GuessNumber { public static void main(String[] args) { // 创建Scanner从控制台读取输入 Scanner in = new Scanner(System.in); // 游戏设置 int rangeStart = 1; int rangeEnd = 8; int guessTotal = 5; // 游戏统计 int totalGameCount = 0; int totalCorrectCount = 0; // 是否结束游戏 boolean stopGame = false; while (!stopGame) { // 初始化本次游戏的变量 // 游戏次数 int guessLeft = guessTotal; // 区间 int mod = rangeEnd - rangeStart; // 随机数 0到1的小数 double randNum = Math.random(); System.out.println(randNum); // 求余数, 保证是0到8 int num = ((int) (randNum * rangeEnd * 100)) % mod; System.out.println(num); num += rangeStart; System.out.println(num); // 存在 num等于8或者1的清空 if (num <= rangeStart) { num = rangeStart + 1; } if (num >= rangeEnd) { num = rangeEnd - 1; } System.out.println("=================== 猜 数 字 ==================="); System.out.println("目标数已经生成,数字在" + rangeStart + "到" + rangeEnd + "之间," + "不包括这两个数。共有" + guessTotal + "次猜测的机会。输入-1随时结束游戏。"); // 本次游戏是否开始了 boolean gameStart = true; // 本次是否猜中数字 boolean guessCorrect = false; while (guessLeft > 0) { System.out.println("还有" + guessLeft + "次机会,请输入猜测的数字,回车确认"); int guessNum = in.nextInt(); // 输入-1,结束游戏 if (guessNum == -1) { stopGame = true; break; } if (guessNum <= rangeStart || guessNum >= rangeEnd) { System.out.println("请输入在" + rangeStart + "到" + rangeEnd + "之间,的数字,不包括这两个数。"); continue; } // 只要至少猜过一次,就算玩过了。 if (gameStart) { totalGameCount++; gameStart = false; } // 可以用的猜测次数减1 guessLeft--; if (guessNum == num) { totalCorrectCount++; guessCorrect = true; System.out.println("恭喜你猜对了!这次的数字就是" + num + "。本次你共猜了" + (guessTotal - guessLeft) + "次。"); break; } else if (guessNum > num) { System.out.println("猜测的数字比目标数字大。"); } else { System.out.println("猜测的数字比目标数字小。"); } } if (!guessCorrect) { System.out.println("本次的目标数字是" + num + "。这次没有猜中。"); } } System.out.println("共进行了" + totalGameCount + "次游戏,其中正确的为" + totalCorrectCount + "次"); }}
标签: #猜数字游戏java