如何用C语言编写一个实现基本规则的'石头、剪刀、布'(Rock-Paper-Scissors)游戏程序?
时间: 2025-01-01 10:40:10 浏览: 17
在C语言中,我们可以创建一个简单的命令行版本的“石头、剪刀、布”游戏。以下是一个基础的实现步骤:
1. **包含头文件**:
```c
#include <stdio.h>
#include <stdlib.h> // 用于随机数生成
```
2. **定义游戏元素枚举**:
```c
enum RPS {ROCK, PAPER, SCISSORS};
```
3. **函数声明**:
- 让用户输入选择
- 随机电脑选择
- 判断胜负并打印结果
```c
int getUserChoice();
int getComputerChoice(void);
void printResult(int userChoice, int computerChoice);
```
4. **定义函数实现**:
- 用户输入处理(循环直到有效选择)
- 生成随机数作为电脑的选择
- 判断输赢并打印结果
```c
int getUserChoice() {
while (1) {
printf("请输入你的选择(0 - 石头, 1 - 剪刀, 2 - 布): ");
if (scanf("%d", &userChoice) == 1 && userChoice >= 0 && userChoice <= 2)
break;
printf("无效输入,请重新选择.\n");
}
return userChoice;
}
int getComputerChoice(void) {
srand(time(NULL)); // 初始化随机种子
return rand() % 3; // 0, 1, 或 2 表示石头、剪刀、布
}
void printResult(int userChoice, int computerChoice) {
char player[] = {"石头", "剪刀", "布"};
char computer[] = {"石头", "剪刀", "布"};
switch ((userChoice + computerChoice) % 3) {
case 0: printf("平局!你出了%s,电脑出了%s.\n", player[userChoice], computer[computerChoice]); break;
case 1: printf("你赢了!你出了%s,电脑出了%s.\n", player[userChoice], computer[computerChoice]); break;
default: printf("电脑赢了!你出了%s,电脑出了%s.\n", player[userChoice], computer[computerChoice]);
}
}
```
5. **主函数**:
```c
int main() {
int userChoice, computerChoice;
userChoice = getUserChoice();
computerChoice = getComputerChoice();
printResult(userChoice, computerChoice);
return 0;
}
```
6. **运行游戏**:
编译并运行这个程序,按照提示交互选择,然后查看结果。
阅读全文