编程模拟剪刀、石头和布游戏。游戏规则为:剪刀剪纸,石头砸剪刀,布包石头。玩游戏者从键盘输入s(表示剪刀)或r(表示石头)或p(表示布),要求两个游戏者交替输入,计算机给出输赢的信息。C++超简写
时间: 2024-09-15 18:09:24 浏览: 56
在C++中,我们可以创建一个简单的控制台应用来模拟剪刀、石头、布游戏。以下是使用函数和基本控制流程的一个简化示例:
```cpp
#include <iostream>
#include <ctime> // 引入时间库,用于随机数生成
// 定义游戏结果
enum GameResult { USER_WIN, COMPUTER_WIN, TIE };
// 计算机随机选择
GameResult computerMove() {
srand(time(0)); // 初始化随机数种子
int random = rand() % 3 + 1; // 0, 1, 或 2
if (random == 1) return USER_WIN; // 假设电脑选石头
else if (random == 2) return COMPUTER_WIN; // 假设电脑选布
return TIE;
}
int main() {
std::cout << "欢迎来到剪刀、石头、布游戏!请输入你的选择(s-剪刀, r-石头, p-布):" << std::endl;
while (true) {
char userChoice;
std::cin >> userChoice;
if (userChoice != 's' && userChoice != 'r' && userChoice != 'p') {
std::cerr << "无效的选择,请重新输入!" << std::endl;
continue;
}
GameResult result = userChoice == 's' ? computerMove() : (userChoice == 'r' ? (computerMove() == USER_WIN ? COMPUTER_WIN : USER_WIN) : (computerMove() == USER_WIN ? USER_WIN : COMPUTER_WIN));
switch (result) {
case USER_WIN:
std::cout << "你赢了!\n";
break;
case COMPUTER_WIN:
std::cout << "电脑赢了!\n";
break;
case TIE:
std::cout << "平局!\n";
break;
}
std::string playAgain = "想再玩一次吗?(y/n)";
std::getline(std::cin, playAgain); // 获取一整行输入,包括空格
if (playAgain[0] != 'y') break; // 如果不是'y'则退出游戏循环
}
return 0;
}
```
阅读全文