c++编程模拟剪刀、石头和布游戏。游戏规则为:严力外玺值头砸物力,而包石义。加游戏者从键盘输入s(表示剪刀)或+(表示石 头)或p(表示布),要求两个游戏者交替输入,计算机给出输赢的信息
时间: 2024-09-17 21:00:51 浏览: 35
冬季安全施工安全隐患排查方案.docx
在C++编程中,模拟剪刀、石头、布游戏通常会采用条件判断和随机选择来实现。以下是简单步骤和代码概述:
1. 定义游戏状态和对应得分:
- 设定三个选项:0代表剪刀(Scissors)、1代表石头(Stone)、2代表布(Paper)
- 计算胜利规则:剪刀胜布(0胜2)、石头胜剪刀(1胜0)、布胜石头(2胜1)
2. 获取用户输入并转换成整数:
```cpp
int userChoice;
char getUserInput();
userChoice = getUserInput() - 's'; // 对于's', 'p', 'r'分别转为0, 1, 2
```
3. 计算电脑的选择(这里可以用随机数生成器):
```cpp
#include <random>
int computerChoice = (rand() % 3); // 0, 1, or 2
```
4. 判断胜负并输出结果:
```cpp
if (userChoice == computerChoice) {
std::cout << "平局!\n";
} else if ((userChoice + 1) % 3 == computerChoice) {
std::cout << "恭喜,你赢了!\n";
} else {
std::cout << "很遗憾,你输了!\n";
}
```
5. 循环游戏直到退出条件(例如,多次循环后让用户选择是否继续)。
完整的代码示例:
```cpp
#include <iostream>
#include <ctime>
#include <cstdlib>
int getUserInput() {
std::cout << "请输入你的选择(s/p/r):";
std::cin >> std::noskipws; // 防止空白字符干扰
return static_cast<int>(std::tolower(std::cin.get()));
}
int main() {
srand(time(0)); // 初始化随机数种子
while (true) {
int userChoice = getUserInput();
int computerChoice = rand() % 3;
if (userChoice == computerChoice) {
std::cout << "平局!\n";
} else if ((userChoice + 1) % 3 == computerChoice) {
std::cout << "恭喜,你赢了!\n";
} else {
std::cout << "很遗憾,你输了!\n";
}
// 询问是否再玩一次
std::cout << "想再来一局吗?(y/n): ";
char playAgain;
std::cin >> playAgain;
if (playAgain != 'y') break;
}
return 0;
}
```
阅读全文