编程实现下面功能: 编写函数youxi(),包含以下功能现有两人玩猜拳游戏,每人可用拳头表示三种物体:石头,剪刀和布中的一种,两人同时出拳,游戏胜负规则如下: (1)石头对剪刀:石头赢。 (2)剪刀对布:剪刀赢。 (3)布对石头:布赢。(
时间: 2024-10-21 08:02:47 浏览: 41
你可以使用C++编写一个简单的命令行猜拳游戏。首先,我们需要创建一个枚举类型来代表石头、剪刀和布,然后定义一个`youxi()`函数,让用户输入选择并检查结果。这里是一个基本的实现:
```cpp
#include <iostream>
#include <string>
enum class Weapon { Stone, Scissors, Paper };
// 定义玩家出拳
Weapon get_player_choice(const std::string& choice) {
if (choice == "stone") return Weapon::Stone;
else if (choice == "scissors") return Weapon::Scissors;
else if (choice == "paper") return Weapon::Paper;
else {
std::cerr << "Invalid choice! Please enter 'stone', 'scissors', or 'paper'.\n";
return Weapon::Unknown; // 假设未知为平局或错误
}
}
// 判断游戏结果
std::string determine_winner(Weapon player1, Weapon player2) {
if (player1 == Weapon::Stone && player2 == Weapon::Scissors) return "Player 1 wins with stone.";
else if (player1 == Weapon::Scissors && player2 == Weapon::Paper) return "Player 1 wins with scissors.";
else if (player1 == Weapon::Paper && player2 == Weapon::Stone) return "Player 1 wins with paper.";
// 如果是平局
if (player1 == player2) return "It's a tie!";
// 否则,玩家2获胜
return "Player 2 wins.";
}
void youxi() {
std::cout << "Welcome to the rock-paper-scissors game!\n";
// 获取两个玩家的选择
Weapon player1, player2;
std::cout << "Player 1, please choose: ";
std::string input1;
std::cin >> input1;
player1 = get_player_choice(input1);
std::cout << "\nPlayer 2, please choose: ";
std::string input2;
std::cin >> input2;
player2 = get_player_choice(input2);
// 输出结果
std::cout << determine_winner(player1, player2) << "\n";
}
int main() {
youxi();
return 0;
}
```
在这个程序中,`get_player_choice()`函数用于获取用户的输入并转换成枚举值,`determine_winner()`函数根据规则判断胜者。`youxi()`函数则是主函数,引导用户进行一轮游戏。
如果你想让游戏更友好,还可以添加循环以便连续玩几轮,直到用户选择退出。
阅读全文