循环判断总结(下)
善假于物也
-
Random方法和readInt方法是两个工具,可以完成一个明确具体的功能。
游戏功能
-
-
固定随机数的范围
-
支持每次猜数字游戏的猜测次数,在指定次数内没猜对,则猜数字失败,否则就是成功。 可以支持退出游戏
-
输出剩余的猜测次数
-
每次猜测后,如果未猜中,则提示本次猜测的数字比目标数字大还是小
-
游戏结束后,输出猜数字游戏的统计
-
没有猜中,要输出这次的目标数字
-
可以设置随机数的范围,可以设置最大猜测次数。
import java.util.Scanner;
public class Example02 {
public static void main(String[] args) {
//创建scanner来读取用户的输入
Scanner in = new Scanner(System.in);
//游戏设置
int rangeStart = 30;
int rangeEnd = 50;
int guessTotal = 5;
//允许猜的次数
//游戏统计
int totalGameCount = 0;
//猜的次数
int correctGuessCount = 0;
//猜对的次数
//是否结束游戏
boolean gameEnd = false;
while (!gameEnd)
//如果输入的结果为负数那么程序就终止循环
{//生成指定范围内的随机数
int mod = rangeEnd - rangeStart;
//start和end之间的模,结果加上rangeStart就必然是范围内的数字
if (rangeStart < 0 || rangeEnd < 0) {
System.out.println("开始和结束必须是正数或者0:(" + rangeStart + "," + rangeEnd + ")");
}
if (mod <= 1) {
System.out.println("非法的数字范围:(" + rangeStart + "," + rangeEnd + ")");
}
int Bigrandom = (int) (Math.random() * (rangeEnd * 100));
//设置一个足够大的随机数范围
int numberToGuess = (Bigrandom % mod) + rangeStart;
//设置随机数
//System.out.println(numberToGuess);
if (numberToGuess <= rangeStart) {
numberToGuess = rangeStart + 1;
} else if (numberToGuess > rangeEnd) {
numberToGuess = rangeEnd - 1;
}
//剩余的猜测次数
int leftToGuess = guessTotal;
boolean currentGameCounted = false;
boolean currentGuess = false;
System.out.println("请输入要进行猜测的数字,该数字的范围在(" + rangeStart + ", " + rangeEnd + "),输入任意负数结束游戏");
while (leftToGuess > 0) {
System.out.println("剩余的猜数次数:"+leftToGuess+"次");
leftToGuess--;
//猜一次就减少一次 次数
int Guess = in.nextInt();
//用户输入一个数字,Guess变量接收
if (Guess<0){
gameEnd = true;
System.out.println("退出游戏!");
break;
}
if (!currentGameCounted){
totalGameCount++;
currentGameCounted = true;
//通过currentGameCounted变量来进行是否真的有在进行游戏的判断
//如果输入了-1就不算作一次游戏的次数
}
if (Guess > numberToGuess) {
System.out.println("你输入的数值大于要猜的数值");
}
else if (Guess < numberToGuess) {
System.out.println("你输入的值小于要猜的数值");
}
else {
correctGuessCount += 1;
currentGuess = true;
System.out.println("猜对了");
break;
}
}
if (!currentGuess){
System.out.println("本次游戏要猜的数字为:"+numberToGuess);
}
System.out.println("游戏结束,你猜对了"+correctGuessCount+"次,猜了"+totalGameCount+"次");
//System.out.println("感谢游玩!");
//break;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具