java代码:分支、循环、跳转语句,知识回顾小游戏(待完善)

/*
		 * 要求:使用Random函数,随机生成一个1-100的数字,然后去循环猜测,最后退出时,要根据猜测的正确率,得到对用的奖品 猜测正确率:100%
		 * 现金:50000 90%-99% 现金 20000 50% -89% 现金:5000 30%-49% 现金:2000 20%-29% 现金:500
		 * 10%-19% 现金:200
		 */
		Random range = new Random();
		Scanner sc = new Scanner(System.in);
		int loginFlag = 0;// 登录标识 0:未登录 1:登录
		int count = 0;// 用于记录登录的次数
		Long sleepTime = 5000L;// 登录时间
		System.out.println("--------欢迎来到量子矩阵小游戏中心------------");
		if (loginFlag == 0) {
			System.out.println("-------------您还未登录,请先登录---------");
			while (true) {
				System.out.print("请输入用户名:");
				String loginName = sc.next();
				System.out.print("请输入密码:");
				String loginPassword = sc.next();
				if ((!loginName.equals("张三") && !loginPassword.equals("123456"))
						|| (loginName.equals("张三") && !loginPassword.equals("123456"))
						|| (!loginName.equals("张三") && loginPassword.equals("123456"))) {
					System.out.println("用户名或密码错误!!");
					count++;
					if (count % 3 == 0) {// 登录三次失败
						sleepTime *= (count / 3);
						System.out.println("您已登录失败累计" + count + "次,请" + (sleepTime / 1000) + "秒后再次登录!");
//						Thread.sleep(sleepTime);// 睡眠
						TimeUnit.MILLISECONDS.sleep(sleepTime);// 毫秒
					}
					continue;
				} else {
					System.out.println("恭喜你,登录成功!!");
					break;
				}
			}
		}

		System.out.println("-------------开始游戏---------------");
		int number = range.nextInt(100) + 1;// 1-100 [a,b]//格式:int ran = range.nextInt((b-a) + 1) +a;
		int flag = 0;// 用于记录第二个人猜测的次数
		int flag01 = 0;// 用于统计猜对的次数
		int caseValue = 0;// 用于存储case语句对应的值
		while (true) {
			System.out.print("是否继续猜测?(y/n)");
			String str = sc.next();// 用于接收控制台录入的是否继续猜测的字符串
			if (str.equals("y")) {
				System.out.println("随机数为:" + number);
				flag++;
				System.out.print("请您猜测第" + flag + "次数据:");
				int number01 = sc.nextInt();// 第二个人猜测的数据
				if (number01 > number) {
					System.out.println("-------------你猜测的数据大了-------------");
				} else if (number01 < number) {
					System.out.println("--------------你猜测的数据小了------------");
				} else if (number01 == number) {
					flag01++;
					System.out.println("------恭喜你,猜对了-----");
					number = range.nextInt(100) + 1;// 猜对以后,重新生成一次随机数据
				}
			} else if (str.equals("n")) {
				System.out.println("---------------GAME OVER!-----------------");
				System.out.println("你一共猜测了" + flag + "次,猜对了" + flag01 + "次");
				double accuracy = (double) flag01 / flag;// 计算正确率
//					System.out.println("正确率为:" + (int)(accuracy * 100) + "%");
				if (accuracy == 1) {
					caseValue = 1;
					System.out.println("您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金50000");
				} else if (accuracy >= 0.9 && accuracy < 1) {
					caseValue = 2;
					System.out.println("您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金20000");
				} else if (accuracy >= 0.5 && accuracy < 0.9) {
					caseValue = 3;
					System.out.println("您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金5000");
				} else if (accuracy >= 0.3 && accuracy < 0.5) {
					caseValue = 4;
					System.out.println("您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金2000");
				} else if (accuracy >= 0.2 && accuracy < 0.3) {
					caseValue = 5;
					System.out.println("您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金500");
				} else if (accuracy >= 0.1 && accuracy < 0.2) {
					caseValue = 6;
					System.out.println("您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金200");
				} else {
					caseValue = 0;
					System.out.println("您的正确率为:" + (int) (accuracy * 100) + "%无奖品");
				}

				// 使用switch语句进行分发奖品
//				switch (caseValue) {
//				case 1:
//					System.out.println("switch-您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金50000");
//					break;
//				case 2:
//					System.out.println("switch-您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金20000");
//					break;
//				case 3:
//					System.out.println("switch-您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金5000");
//					break;
//				case 4:
//					System.out.println("switch-您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金2000");
//					break;
//				case 5:
//					System.out.println("switch-您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金500");
//					break;
//				case 6:
//					System.out.println("switch-您的正确率为:" + (int) (accuracy * 100) + "%奖品为现金200");
//					break;
//				default:
//					System.out.println("switch-您的正确率为:" + (int) (accuracy * 100) + "%无奖品");
//				}
				// 是否再来一局
				System.out.println("------是否继续游戏------");
				System.out.println("------1、再来一局------");
				System.out.println("------2、退出登录------");
				while (true) {
					int againGameFlag = sc.nextInt();
					switch (againGameFlag) {
					case 1:
						flag = 0;
						flag01 = 0;
						break;// 退出switch-case结构
					case 2:
						System.out.println("退出成功,欢迎下次再来");
						return;// 结束整个游戏
					default:
						System.out.println("输入的内容不符合要求,请重新输入");
						continue;
					}
					break;// 退出最近的一层循环
				}
				continue;// 再来一局
			} else {
				System.out.println("----你输入的字符串不符合要求,请重新输入!!-------");
				continue;
			}
		}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁梦码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值