酷代码 AI
菜单
服务商

猫和老鼠c++

猫和老鼠游戏可以用C++实现,以下是一个简单的控制台版本示例: ```cpp #include <iostream> #include <conio.h> #include <windows.h> #include <cstdlib> #include <ctime> using namespace std; const int WIDTH = 20; const int HEIGHT = 10; char gameBoard[HEIGHT][WIDTH]; int catX, catY; int mouseX, mouseY; int score = 0; bool gameOver = false; void initializeBoard() { for (int i = 0; i < HEIGHT; i++) { for (int j = 0; j < WIDTH; j++) { gameBoard[i][j] = '.'; } } } void placeCharacters() { srand(time(0)); catX = WIDTH / 2; catY = HEIGHT / 2; gameBoard[catY][catX] = 'C'; do { mouseX = rand() % WIDTH; mouseY = rand() % HEIGHT; } while (mouseX == catX && mouseY == catY); gameBoard[mouseY][mouseX] = 'M'; } void drawBoard() { system("cls"); cout << "猫和老鼠游戏 - 分数: " << score << endl; cout << "使用WASD移动猫,Q退出" << endl << endl; for (int i = 0; i < HEIGHT; i++) { for (int j = 0; j < WIDTH; j++) { cout << gameBoard[i][j] << " "; } cout << endl; } } void moveCat(char direction) { gameBoard[catY][catX] = '.'; switch (direction) { case 'w': case 'W': if (catY > 0) catY--; break; case 's': case 'S': if (catY < HEIGHT - 1) catY++; break; case 'a': case 'A': if (catX > 0) catX--; break; case 'd': case 'D': if (catX < WIDTH - 1) catX++; break; } gameBoard[catY][catX] = 'C'; } void moveMouse() { gameBoard[mouseY][mouseX] = '.'; int direction = rand() % 4; switch (direction) { case 0: if (mouseY > 0) mouseY--; break; case 1: if (mouseY < HEIGHT - 1) mouseY++; break; case 2: if (mouseX > 0) mouseX--; break; case 3: if (mouseX < WIDTH - 1) mouseX++; break; } gameBoard[mouseY][mouseX] = 'M'; } void checkCollision() { if (catX == mouseX && catY == mouseY) { score++; do { mouseX = rand() % WIDTH; mouseY = rand() % HEIGHT; } while (mouseX == catX && mouseY == catY); gameBoard[mouseY][mouseX] = 'M'; } } int main() { initializeBoard(); placeCharacters(); char input; while (!gameOver) { drawBoard(); if (_kbhit()) { input = _getch(); if (input == 'q' || input == 'Q') { gameOver = true; continue; } moveCat(input); moveMouse(); checkCollision(); } Sleep(100); } cout << "\n游戏结束!最终分数: " << score << endl; return 0; } ``` 这个程序实现了一个简单的猫抓老鼠游戏: 1. 游戏区域为20x10的网格 2. 猫用'C'表示,老鼠用'M'表示 3. 玩家使用WASD键控制猫移动 4. 老鼠会自动随机移动 5. 猫抓到老鼠得分,老鼠重新随机出现 6. 按Q键退出游戏 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 随机数生成需要正确初始化种子,避免每次游戏模式相同 2. 边界检查防止角色移动到游戏区域外 3. 字符放置时需确保猫和老鼠不在同一位置 [2026-01-02 18:24:36 | AI写代码神器 | 997点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多