/*
* 要求:使用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;
}
}
java代码:分支、循环、跳转语句,知识回顾小游戏(待完善)
最新推荐文章于 2024-07-29 14:22:26 发布