#include \n#include \n#include \n\nusing namespace std; \n\n// 游戏界面的大小\nconst int WIDTH = 20; \nconst int HEIGHT = 10; \n\n// 玩家的初始位置\nconst int PLAYER_X = WIDTH / 2; \nconst int PLAYER_Y = HEIGHT - 1; \n\n// 子弹的速度\nconst int BULLET_SPEED = 1; \n\n// 敌人的速度\nconst int ENEMY_SPEED = 1; \n\n// 游戏状态\nenum GameState {\n PLAYING, \n GAME_OVER\n}; \n\n// 玩家\nstruct Player {\n int x; \n int y; \n}; \n\n// 子弹\nstruct Bullet {\n int x; \n int y; \n bool active; \n}; \n\n// 敌人\nstruct Enemy {\n int x; \n int y; \n bool active; \n}; \n\n// 初始化玩家\nvoid initPlayer(Player& player) {\n player.x = PLAYER_X; \n player.y = PLAYER_Y; \n}\n\n// 初始化子弹\nvoid initBullet(Bullet& bullet) {\n bullet.active = false; \n}\n\n// 初始化敌人\nvoid initEnemy(Enemy& enemy) {\n enemy.active = false; \n}\n\n// 发射子弹\nvoid shootBullet(Player& player, Bullet& bullet) {\n bullet.x = player.x; \n bullet.y = player.y - 1; \n bullet.active = true; \n}\n\n// 生成敌人\nvoid generateEnemy(Enemy& enemy) {\n enemy.x = rand() % WIDTH; \n enemy.y = 0; \n enemy.active = true; \n}\n\n// 更新游戏状态\nvoid updateGame(Player& player, Bullet& bullet, Enemy& enemy, GameState& state) {\n // 移动子弹\n if (bullet.active) {\n bullet.y -= BULLET_SPEED; \n if (bullet.y < 0) {\n bullet.active = false; \n }\n }\n\n // 移动敌人\n if (enemy.active) {\n enemy.y += ENEMY_SPEED; \n if (enemy.y >= HEIGHT) {\n enemy.active = false; \n state = GAME_OVER; \n }\n }\n\n // 碰撞检测\n if (bullet.active && enemy.active && bullet.x == enemy.x && bullet.y == enemy.y) {\n bullet.active = false; \n enemy.active = false; \n }\n\n // 检测游戏结束\n if (state == PLAYING && player.x == enemy.x && player.y == enemy.y) {\n state = GAME_OVER; \n }\n}\n\n// 显示游戏界面\nvoid drawGame(const Player& player, const Bullet& bullet, const Enemy& enemy) {\n system("clear"); // 清空屏幕\n\n for (int y = 0; y < HEIGHT; y++) {\n for (int x = 0; x < WIDTH; x++) {\n if (player.x == x && player.y == y) {\n cout << "P"; \n } else if (bullet.active && bullet.x == x && bullet.y == y) {\n cout << "*"; \n } else if (enemy.active && enemy.x == x && enemy.y == y) {\n cout << "E"; \n } else {\n cout << "."; \n }\n }\n cout << endl; \n }\n}\n\nint main() {\n srand(time(NULL)); \n\n Player player; \n Bullet bullet; \n Enemy enemy; \n GameState state = PLAYING; \n\n initPlayer(player); \n initBullet(bullet); \n initEnemy(enemy); \n\n while (state == PLAYING) {\n drawGame(player, bullet, enemy); \n char input; \n cin >> input; \n\n switch (input) {\n case 'a':\n player.x--; \n break; \n case 'd':\n player.x++; \n break; \n case 's':\n shootBullet(player, bullet); \n break; \n }\n\n updateGame(player, bullet, enemy, state); \n }\n\n cout << "Game over!" << endl; \n\n return 0; \n}\n