简单 C++ 射击小游戏代码实现
以下是一个简单的 C++ 射击小游戏示例,在这个游戏中,玩家控制一个射击者在一个一维的地图上移动并射击目标。 ```cpp #include <iostream> #include <cstdlib> #include <ctime> // 定义地图大小 const int MAP_SIZE = 20; // 打印地图 void printMap(int shooterPos, int targetPos) { for (int i = 0; i < MAP_SIZE; ++i) { if (i == shooterPos) { std::cout << 'S'; } else if (i == targetPos) { std::cout << 'T'; } else { std::cout << '.'; } } std::cout << std::endl; } // 移动射击者 int moveShooter(int shooterPos, char direction) { if (direction == 'a' && shooterPos > 0) { --shooterPos; } else if (direction == 'd' && shooterPos < MAP_SIZE - 1) { ++shooterPos; } return shooterPos; } // 射击操作 bool shoot(int shooterPos, int targetPos) { return shooterPos == targetPos; } int main() { srand(static_cast<unsigned int>(time(nullptr))); // 随机初始化目标位置 int targetPos = rand() % MAP_SIZE; // 初始化射击者位置 int shooterPos = 0; char input; bool gameOver = false; while (!gameOver) { // 打印地图 printMap(shooterPos, targetPos); // 获取用户输入 std::cout << "输入 'a' 向左移动,'d' 向右移动,'s' 射击:"; std::cin >> input; if (input == 'a' || input == 'd') { // 移动射击者 shooterPos = moveShooter(shooterPos, input); } else if (input == 's') { // 射击 if (shoot(shooterPos, targetPos)) { std::cout << "击中目标!游戏结束。" << std::endl; gameOver = true; } else { std::cout << "未击中目标,请继续。" << std::endl; } } } return 0; } ``` ### 代码说明: 1. **地图定义**:`MAP_SIZE` 定义了地图的大小,在这个游戏中是一维的。 2. **打印地图**:`printMap` 函数用于打印当前地图的状态,`S` 表示射击者,`T` 表示目标,`.` 表示空白位置。 3. **移动射击者**:`moveShooter` 函数根据用户输入的方向(`a` 向左,`d` 向右)移动射击者的位置。 4. **射击操作**:`shoot` 函数判断射击者是否击中目标。 5. **主函数**:在 `main` 函数中,初始化目标和射击者的位置,然后进入游戏循环,根据用户输入进行移动或射击操作,直到击中目标游戏结束。 ######[AI问答 | 759点数解答 | 2026-07-04 13:22:28]
- 龙年年会盛宴:热场、表演、游戏嗨翻全场! (字节豆包 | 270点数解答 | 2025-01-16 14:21:53)295
- 超燃年会盛宴:游戏、表演与祝福共迎 2024 新征程!(字节豆包 | 392点数解答 | 2025-01-16 14:34:56)200
- 简单射击游戏设计与 Python 代码实现(字节豆包 | 994点数解答 | 2026-06-21 11:56:48)19
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)508
- 超好玩的 C++ 猜数字小游戏代码分享(字节豆包 | 553点数解答 | 2026-07-04 13:26:11)5
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)430
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)566
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)438
- 蓝桥杯省赛集训:不用 datetime 计算小蓝日记整数对应的日期(GPT | 516点数解答 | 2024-08-24 19:05:08)849
- 简单C语言编程:输入两整数算和差积商,10秒内搞定!(字节豆包 | 146点数解答 | 2024-10-17 15:51:21)395
- C 语言轻松搞定:四位数倒序输出,单个测试集 10 秒评测!(字节豆包 | 227点数解答 | 2024-10-17 21:54:27)379
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)475