迷宫老鼠数据结构java
时间: 2023-12-31 12:24:36 浏览: 29
迷宫老鼠的数据结构可以使用二维数组来表示迷宫地图,其中每个元素代表迷宫的一个格子。可以使用特定的值来表示不同的元素,例如0表示空地,1表示墙壁,2表示老鼠,3表示粮仓。通过键盘上的方向键来操纵老鼠在迷宫中移动。
以下是一个使用Java语言实现迷宫老鼠的简单示例:
```java
public class MazeMouse {
private int[][] maze; // 迷宫地图
private int mouseRow; // 老鼠所在行
private int mouseCol; // 老鼠所在列
public MazeMouse(int[][] maze) {
this.maze = maze;
this.mouseRow = 0; // 初始位置为迷宫的左上角
this.mouseCol = 0;
}
public void moveUp() {
if (mouseRow > 0 && maze[mouseRow - 1][mouseCol] != 1) {
mouseRow--;
}
}
public void moveDown() {
if (mouseRow < maze.length - 1 && maze[mouseRow + 1][mouseCol] != 1) {
mouseRow++;
}
}
public void moveLeft() {
if (mouseCol > 0 && maze[mouseRow][mouseCol - 1] != 1) {
mouseCol--;
}
}
public void moveRight() {
if (mouseCol < maze[0].length - 1 && maze[mouseRow][mouseCol + 1] != 1) {
mouseCol++;
}
}
public boolean isAtDestination() {
return maze[mouseRow][mouseCol] == 3;
}
public void printMaze() {
for (int i = 0; i < maze.length; i++) {
for (int j = 0; j < maze[0].length; j++) {
if (i == mouseRow && j == mouseCol) {
System.out.print("2 "); // 老鼠的位置
} else {
System.out.print(maze[i][j] + " ");
}
}
System.out.println();
}
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
int[][] maze = {
{0, 0, 0, 0, 0},
{0, 1, 1, 1, 0},
{0, 1, 0, 0, 0},
{0, 1, 1, 1, 0},
{0, 0, 0, 3, 0}
};
MazeMouse mouse = new MazeMouse(maze);
mouse.printMaze();
// 模拟按下方向键移动老鼠
mouse.moveDown();
mouse.moveRight();
mouse.moveRight();
mouse.moveDown();
mouse.moveDown();
mouse.printMaze();
if (mouse.isAtDestination()) {
System.out.println("老鼠成功到达粮仓!");
} else {
System.out.println("老鼠未能到达粮仓!");
}
}
}
```