import java.util.Random; import java.util.Scanner; import java.text.SimpleDateFormat; import java.util.TimeZone; public class Main { public static void main(String[] args) { Random random = new Random(); int n = random.nextInt(100) + 1; // 生成随机数 int sum = 0; // 输入次数 Scanner sc = new Scanner(System.in); long startTime = System.currentTimeMillis(); while (true) { System.out.print(";请输入一个1-100内的整数:"); int m = 0; try { m = sc.nextInt(); if (m< 1 || m > 100) { System.out.println("必须输入1-100整数"); continue; } } catch (Exception e) { if ("quit".equalsIgnoreCase(sc.next())) { System.out.println("游戏结束"); break; } else { System.out.println("必须输入整数"); continue; } } if (n == m) { System.out.println(";恭喜你猜对了!"); break; } else if (n > m) { System.out.println(";你猜小了,继续加油哦!"); } else { System.out.println(";你猜大了,继续加油哦!"); } sum++; } switch (sum) { case 1: case 2: System.out.println("恭喜你获得一等奖 "); break; case 3: case 4: System.out.println("恭喜你获得二等奖 "); break; case 5: case 6: System.out.println("恭喜你获得三等奖 "); break; default: System.out.println("谢谢惠顾"); break; } while (true) { System.out.println(";是否继续"); Scanner input = new Scanner(System.in); String answer = input.next(); if (answer.equals("Y")) { main(null); } else if (answer.equals("N")) { System.out.println("游戏结束"); } break; } System.out.println("你一共猜了" + sum + "次!"); long endTime = System.currentTimeMillis(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); String totalTime = sdf.format((endTime - startTime)); System.out.println("游戏耗时 :" + totalTime); sc.close(); } }
时间: 2024-01-20 13:03:14 浏览: 130
这是一个猜数游戏的完整代码,和之前介绍的代码类似,不过这个代码加入了一些额外的功能:
1. 输入次数统计和奖励:在玩家猜对数字之前,程序会统计玩家猜测的次数,并根据猜测次数给出不同的奖励。
2. 游戏结束后询问是否继续:在一轮游戏结束后,程序会询问玩家是否想要继续下一轮游戏。
3. 游戏耗时:在游戏结束后,程序会输出本轮游戏所花费的时间。
```java
import java.util.Random;
import java.util.Scanner;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
public class Main {
public static void main(String[] args) {
Random random = new Random();
int n = random.nextInt(100) + 1; // 生成随机数
int sum = 0; // 输入次数
Scanner sc = new Scanner(System.in);
long startTime = System.currentTimeMillis();
while (true) {
System.out.print("请输入一个1-100内的整数:");
int m = 0;
try {
m = sc.nextInt();
if (m < 1 || m > 100) {
System.out.println("必须输入1-100内的整数!");
continue;
}
} catch (Exception e) {
if ("quit".equalsIgnoreCase(sc.next())) {
System.out.println("游戏结束!");
break;
} else {
System.out.println("必须输入整数!");
continue;
}
}
sum++;
if (n == m) {
System.out.println("恭喜你猜对了!");
break;
} else if (n > m) {
System.out.println("你猜小了,继续加油哦!");
} else {
System.out.println("你猜大了,继续加油哦!");
}
}
switch (sum) {
case 1:
case 2:
System.out.println("恭喜你获得一等奖!");
break;
case 3:
case 4:
System.out.println("恭喜你获得二等奖!");
break;
case 5:
case 6:
System.out.println("恭喜你获得三等奖!");
break;
default:
System.out.println("谢谢惠顾!");
break;
}
while (true) {
System.out.println("是否继续?(Y/N)");
Scanner input = new Scanner(System.in);
String answer = input.next();
if (answer.equals("Y")) {
main(null);
} else if (answer.equals("N")) {
System.out.println("游戏结束!");
}
break;
}
System.out.println("你一共猜了" + sum + "次!");
long endTime = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
String totalTime = sdf.format((endTime - startTime));
System.out.println("游戏耗时 :" + totalTime);
sc.close();
}
}
```
阅读全文