Java写迷宫游戏并加入计时功能
时间: 2024-03-13 07:45:50 浏览: 43
Java迷宫游戏
好的,我可以为你提供一个简单的Java迷宫游戏代码,并加入计时功能。以下是代码:
```java
import java.util.Scanner;
public class MazeGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[][] maze = { // 迷宫地图
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 0, 1, 0, 0, 0, 1, 0, 1},
{1, 0, 0, 1, 0, 0, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 1, 1, 0, 0, 1},
{1, 0, 1, 1, 1, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 1, 0, 0, 0, 0, 1},
{1, 0, 1, 0, 0, 0, 1, 0, 0, 1},
{1, 0, 1, 1, 1, 0, 1, 1, 0, 1},
{1, 1, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};
int startX = 1; // 起点坐标
int startY = 1;
int endX = 8; // 终点坐标
int endY = 8;
int x = startX;
int y = startY;
int stepCount = 0; // 步数计数器
long startTime = System.currentTimeMillis(); // 计时开始
while (x != endX || y != endY) {
maze[x][y] = 2; // 标记已走过的路
System.out.println("当前位置:(" + x + "," + y + ")");
System.out.print("请输入方向(上:W,下:S,左:A,右:D):");
String direction = scanner.next();
switch (direction) {
case "W":
if (maze[x - 1][y] == 0) {
x--;
stepCount++;
}
break;
case "S":
if (maze[x + 1][y] == 0) {
x++;
stepCount++;
}
break;
case "A":
if (maze[x][y - 1] == 0) {
y--;
stepCount++;
}
break;
case "D":
if (maze[x][y + 1] == 0) {
y++;
stepCount++;
}
break;
default:
System.out.println("请输入正确的方向!");
break;
}
if (maze[x][y] == 1) { // 撞墙了
System.out.println("很遗憾,您撞墙了!");
break;
}
}
long endTime = System.currentTimeMillis(); // 计时结束
long timeElapsed = endTime - startTime; // 计算用时(毫秒)
System.out.println("恭喜您成功走出迷宫!用时:" + timeElapsed / 1000.0 + "秒,步数:" + stepCount);
}
}
```
这个迷宫游戏使用二维数组表示地图,1表示墙,0表示路,2表示已走过的路。玩家通过控制台输入上下左右方向键移动,遇到墙自动停止。当到达终点时,游戏结束,输出用时和步数。
我在代码中添加了计时功能,使用`System.currentTimeMillis()`方法获取当前时间,用于计算游戏用时。
阅读全文