java迷宫游戏如何实现计时功能和用时排行榜功能java代码
时间: 2024-01-16 13:05:13 浏览: 90
实现计时功能可以使用Java中的System.currentTimeMillis()方法来获取当前时间戳。在游戏开始时记录开始时间戳,游戏结束时记录结束时间戳,两者相减即为游戏用时。代码如下:
```java
long start = System.currentTimeMillis(); // 记录开始时间
// 游戏代码
long end = System.currentTimeMillis(); // 记录结束时间
long time = end - start; // 计算用时(单位:毫秒)
```
实现用时排行榜功能,可以将玩家的姓名和用时保存到一个文件中,再读取文件进行排名。以下是一个简单的示例代码:
```java
import java.io.*;
import java.util.*;
public class TimeRanking {
private static final String FILENAME = "timeranking.txt";
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入玩家姓名
System.out.print("请输入您的姓名:");
String name = scanner.nextLine();
// 计时开始
long start = System.currentTimeMillis();
// 游戏代码
// ...
// 计时结束
long end = System.currentTimeMillis();
long time = end - start;
// 写入文件
try (PrintWriter writer = new PrintWriter(new FileWriter(FILENAME, true))) {
writer.println(name + "," + time);
} catch (IOException e) {
System.out.println("写入文件出错:" + e.getMessage());
}
// 读取文件并排序
List<Player> players = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(FILENAME))) {
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split(",");
players.add(new Player(parts[0], Long.parseLong(parts[1])));
}
} catch (IOException e) {
System.out.println("读取文件出错:" + e.getMessage());
}
Collections.sort(players);
// 输出排名
System.out.println("用时排名:");
for (int i = 0; i < players.size(); i++) {
Player player = players.get(i);
System.out.println((i + 1) + ". " + player.name + ":" + player.time + "毫秒");
}
}
private static class Player implements Comparable<Player> {
public String name;
public long time;
public Player(String name, long time) {
this.name = name;
this.time = time;
}
@Override
public int compareTo(Player other) {
return Long.compare(this.time, other.time);
}
}
}
```
在这个示例中,玩家的姓名和用时会保存到一个名为 "timeranking.txt" 的文件中,每行一个玩家,格式为 "姓名,用时"。读取文件后,使用Collections.sort()方法对保存玩家信息的List进行排序,最后输出排名。
阅读全文