酷代码 AI
菜单
服务商

c++迷宫小游戏

好的!下面是一个简单的 C++ 迷宫小游戏的实现。这个迷宫游戏使用了二维数组来表示迷宫,玩家可以通过键盘输入方向来移动,直到到达终点。 功能说明: - 使用 `#` 表示墙壁,`.` 表示可行走的路径,`P` 表示玩家,`E` 表示终点。 - 玩家可以通过输入 `w`(上)、`a`(左)、`s`(下)、`d`(右)来移动。 - 当玩家到达终点时,显示胜利信息。 代码如下: ```cpp #include <iostream> #include <conio.h> // 用于 _getch() 获取单个字符输入(Windows 系统) using namespace std; const int WIDTH = 10; const int HEIGHT = 10; // 定义迷宫 char maze[HEIGHT][WIDTH] = { {'#', '#', '#', '#', '#', '#', '#', '#', '#', '#'}, {'#', 'P', '.', '.', '#', '.', '.', '.', '.', '#'}, {'#', '#', '#', '.', '#', '.', '#', '#', '.', '#'}, {'#', '.', '.', '.', '.', '.', '#', '.', '.', '#'}, {'#', '#', '#', '#', '#', '#', '#', '#', '.', '#'}, {'#', '.', '.', '.', '.', '.', '.', '.', '.', '#'}, {'#', '#', '#', '#', '#', '#', '#', '#', '.', '#'}, {'#', '.', '.', '.', '.', '.', '.', '#', '.', '#'}, {'#', '.', '#', '#', '#', '#', '.', '#', 'E', '#'}, {'#', '#', '#', '#', '#', '#', '#', '#', '#', '#'} }; // 玩家位置 int playerX = 1, playerY = 1; // 打印迷宫 void printMaze() { system("cls"); // 清屏(Windows 系统) for (int i = 0; i < HEIGHT; ++i) { for (int j = 0; j < WIDTH; ++j) { cout << maze[i][j]; } cout << endl; } } // 检查是否可以移动 bool canMove(int x, int y) { return maze[x][y] != '#'; } // 检查是否到达终点 bool isEnd(int x, int y) { return maze[x][y] == 'E'; } int main() { char move; while (true) { printMaze(); if (isEnd(playerX, playerY)) { cout << "恭喜你,成功走出迷宫!" << endl; break; } cout << "请输入移动方向 (w: 上, a: 左, s: 下, d: 右): "; move = _getch(); // 获取单个字符输入(无需回车) int newX = playerX, newY = playerY; switch (move) { case 'w': newX--; break; case 's': newX++; break; case 'a': newY--; break; case 'd': newY++; break; default: cout << "无效输入,请输入 w, a, s 或 d" << endl; continue; } if (canMove(newX, newY)) { // 更新玩家位置 maze[playerX][playerY] = '.'; // 原位置恢复为路径 playerX = newX; playerY = newY; maze[playerX][playerY] = 'P'; // 新位置设置为玩家 } else { cout << "撞墙了,不能移动!" << endl; } } return 0; } ``` --- 如何运行这个程序? 1. 开发环境:建议使用支持 C++ 的编译器,如 Visual Studio、Code::Blocks 或 Dev-C++(Windows 系统)。 2. 注意:`_getch()` 是 Windows 系统特有的函数,如果你在 Linux 或 macOS 上运行,可以改用 `getchar()` 并调整输入逻辑。 3. 迷宫修改:你可以修改 `maze` 数组来设计不同的迷宫布局。 --- 三条需要注意的逻辑点: 1. 边界检查:`canMove` 函数没有检查数组越界,如果迷宫外有移动需求可能会导致越界错误。 2. 输入阻塞:`_getch()` 是非阻塞式输入,但如果在某些平台上使用 `cin` 或 `getchar()` 可能需要清空缓冲区。 3. 迷宫状态更新:每次移动后需要更新迷宫中玩家的位置,并确保旧位置恢复为路径,否则后续路径会被错误地视为不可走。 [2025-07-25 21:18:14 | AI写代码神器 | 1050点数解答]

相关提问
请收藏新域名:pdcd.cn
发财导航,免费问AI
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]