设计一个简单的迷宫,用户通过输入方向(上、下、左、右)来移动,目标是找到出口逃脱。 2、要求: (1)使用二维数组表示迷宫。 (2)检查移动是否合法(不越界、非墙)。 (3)给出当前位置和迷宫状态。 (4)检测到出口时结束游戏。用c++编程
时间: 2024-09-28 10:16:01 浏览: 23
设计一个简单的迷宫游戏可以分为几个步骤:
1. 定义迷宫结构:创建一个二维字符数组,其中 'S' 表示起点,'E' 表示终点,'#' 表示墙壁,玩家初始位置可能是 'S'。
```cpp
const int ROWS = 5; // 迷宫的行数
const int COLS = 7; // 迷宫的列数
char maze[ROWS][COLS] = {
{'#', '#', '#', '#', '#', '#', '#' },
{' ', '#', '#', '#', '#', '#', 'E' }, // S 在左上角
{' ', '#', '.', '#', '#', '.', '#' },
{' ', '.', '#', '.', '#', '.', '#' },
{' ', '.', '.', '.', '#', '.', '#' } // 随机填充空格和墙壁
};
```
2. 用户输入处理:创建一个循环,读取用户的输入并更新当前位置。
```cpp
int x = 0, y = 0;
bool foundExit = false;
while (!foundExit) {
cout << "请输入方向 (上、下、左、右): ";
string direction;
cin >> direction;
if (direction == "上") {
y--;
} else if (direction == "下") {
y++;
} else if (direction == "左") {
x--;
} else if (direction == "右") {
x++;
}
// 检查边界和墙壁
if (x < 0 || x >= COLS || y < 0 || y >= ROWS || maze[y][x] == '#') {
cout << "非法移动,仍然在迷宫中...\n";
} else {
maze[y][x] = ' '; // 玩家移动
if (maze[y][x] == 'E') {
foundExit = true;
cout << "恭喜!你找到了出口!\n";
}
}
// 显示当前状态
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
cout << maze[i][j];
}
cout << endl;
}
}
```