为游戏 Rock Paper Scissor 编写 C++ 程序,用中文
时间: 2024-10-10 16:17:10 浏览: 36
当然可以,对于经典的“石头、剪刀、布”(Rock Paper Scissors)游戏,我们可以创建一个简单的命令行C++程序。以下是基本的游戏流程和代码概览:
1. **游戏初始化**:定义游戏中的三种选择(石头、纸、剪刀)以及它们之间的关系。
2. **用户输入**:让用户输入他们的选择,并检查输入是否有效。
3. **电脑出牌**:使用随机数生成器来模拟电脑的选择。
4. **比较结果**:根据游戏规则,判断谁赢得比赛。
5. **循环进行**:询问用户是否想继续游戏,如果想就继续,不想则结束。
下面是一个简化的代码例子:
```cpp
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <string>
enum Choice { ROCK, PAPER, SCISSORS };
std::string choiceToString(Choice c) {
switch (c) {
case ROCK: return "石头";
case PAPER: return "纸";
case SCISSORS: return "剪刀";
}
}
bool compareChoices(Choice user, Choice computer) {
if (user == computer) return false;
if ((user == ROCK && computer == SCISSORS) ||
(user == PAPER && computer == ROCK) ||
(user == SCISSORS && computer == PAPER))
return true;
return false;
}
int main() {
srand(time(0));
std::string userChoice, computerChoice;
int rounds = 0;
do {
std::cout << "请输入你的选择(石头、纸、剪刀):";
std::cin >> userChoice;
if (userChoice != "石头" && userChoice != "纸" && userChoice != "剪刀") {
std::cerr << "无效的选择,请重新输入。\n";
continue;
}
computerChoice = static_cast<Choice>(rand() % 3); // 0, 1, 或者 2 对应 ROCK, PAPER, SCISSORS
rounds++;
if (compareChoices(userChoice[0] - 'a', computerChoice)) {
std::cout << "你赢了第" << rounds << "轮!\n";
} else {
std::cout << "电脑赢了第" << rounds << "轮!\n";
}
std::cout << "再来一局吗?(y/n):";
std::string response;
std::cin >> response;
} while (response == "y");
std::cout << "游戏结束,你共玩了" << rounds << "轮。\n";
return 0;
}
```
阅读全文