#include <stdio.h>
#include <stdlib.h>
#define MAZE_WIDTH 5
#define MAZE_HEIGHT 5
// 迷宫结构
char maze[MAZE_WIDTH][MAZE_HEIGHT] = {
{'#', '#', '#', '#', '#'},
{'#', ' ', ' ', ' ', '#'},
{'#', ' ', '#', ' ', '#'},
{'#', ' ', ' ', ' ', '#'},
{'#', '#', '#', '#', '#'}
};
// 玩家位置
int playerX = 1;
int playerY = 1;
// 打印迷宫
void printMaze() {
for (int i = 0; i < MAZE_WIDTH; ++i) {
for (int j = 0; j < MAZE_HEIGHT; ++j) {
if (i == playerX && j == playerY) {
} else {
}
}
}
}
// 检查玩家位置是否有效
int isValidMove(int newX, int newY) {
return (newX >= 0 && newX < MAZE_WIDTH && newY >= 0 && newY < MAZE_HEIGHT && maze[newX][newY] != '#');
}
int main() {
char direction;
do {
printMaze(); // 打印迷宫
scanf(" %c", &direction
); // 读取玩家输入的方向
switch (direction) {
case 'w': // 上
if (isValidMove(playerX - 1, playerY)) {
playerX--;
}
break;
case 'a': // 左
if (isValidMove(playerX, playerY - 1)) {
playerY--;
}
break;
case 's': // 下
if (isValidMove(playerX + 1, playerY)) {
playerX++;
}
break;
case 'd': // 右
if (isValidMove(playerX, playerY + 1)) {
playerY++;
}
break;
default:
break;
}
// 检查是否到达终点
if (maze[playerX][playerY] == 'E') {
}
} while (maze[playerX][playerY] != 'E');
return 0;
}
在这个示例中,迷宫被定义为一个二维字符数组,'#'表示墙壁,空格' '表示可以走的路,'E'表示出口,'P'表示玩家的位置。玩家可以通过输入W、A、S、D来分别向上、向左、向下、向右移动。程序会检查玩家的移动是否有效(即是否不会撞到墙壁),然后更新玩家的位置。如果玩家到达出口,游戏结束并显示祝贺信息。