酷代码 AI
菜单
服务商

Dev C++ 实现石头剪刀布游戏:代码示例、说明及注意要点

以下是一个用 C++ 语言在 Dev C++ 中实现石头剪刀布游戏的代码示例: ```cpp #include <iostream> #include <cstdlib> #include <ctime> // 定义枚举类型来表示石头、剪刀、布 enum Choice { ROCK, PAPER, SCISSORS }; // 函数用于获取玩家的选择 Choice getPlayerChoice() { int choice; do { std::cout << "请选择:1. 石头 2. 布 3. 剪刀: "; std::cin >> choice; if (choice < 1 || choice > 3) { std::cout << "无效的选择,请重新输入。" << std::endl; } } while (choice < 1 || choice > 3); return static_cast<Choice>(choice - 1); } // 函数用于获取电脑的随机选择 Choice getComputerChoice() { // 设置随机数种子 std::srand(static_cast<unsigned int>(std::time(nullptr))); // 生成 0 到 2 之间的随机数 int random = std::rand() % 3; return static_cast<Choice>(random); } // 函数用于判断游戏结果 void determineWinner(Choice player, Choice computer) { if (player == computer) { std::cout << "平局!" << std::endl; } else if ((player == ROCK && computer == SCISSORS) || (player == PAPER && computer == ROCK) || (player == SCISSORS && computer == PAPER)) { std::cout << "你赢了!" << std::endl; } else { std::cout << "你输了!" << std::endl; } } // 函数用于输出选择对应的名称 std::string choiceToString(Choice choice) { switch (choice) { case ROCK: return "石头"; case PAPER: return "布"; case SCISSORS: return "剪刀"; default: return ""; } } int main() { // 获取玩家的选择 Choice playerChoice = getPlayerChoice(); // 获取电脑的选择 Choice computerChoice = getComputerChoice(); std::cout << "你选择了:" << choiceToString(playerChoice) << std::endl; std::cout << "电脑选择了:" << choiceToString(computerChoice) << std::endl; // 判断游戏结果 determineWinner(playerChoice, computerChoice); return 0; } ``` 代码说明 1. 枚举类型 `Choice`:用于表示石头、剪刀、布三种选择。 2. `getPlayerChoice` 函数:获取玩家的输入,并确保输入是有效的(1 - 3)。 3. `getComputerChoice` 函数:使用随机数生成器生成电脑的选择。 4. `determineWinner` 函数:根据玩家和电脑的选择判断游戏结果。 5. `choiceToString` 函数:将枚举类型转换为对应的字符串,方便输出。 6. `main` 函数:调用上述函数完成游戏流程。 需要小心的地方 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 随机数种子的设置:如果不设置随机数种子,每次运行程序时电脑的选择可能是相同的。需要使用 `std::srand` 函数设置随机数种子。 2. 输入验证:在获取玩家输入时,需要确保输入是有效的,避免程序崩溃。 3. 枚举类型的使用:在使用枚举类型时,需要注意类型转换,确保代码的正确性。 ######[AI写代码神器 | 873点数解答 | 2025-10-26 19:00:16]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]