用c语言写一个取球博弈
时间: 2024-09-20 22:05:10 浏览: 33
在C语言中实现一个简单的“取球博弈”游戏,通常可以是一个经典的“石头、剪刀、布”(Rock-Paper-Scissors)的变种。这里我将给出一个基本的命令行版本的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 定义游戏元素
enum Choices { ROCK = 0, PAPER = 1, SCISSORS = 2 };
// 计算胜负规则
int compare_choices(enum Choices user, enum Choices ai) {
if (user == ai) return 0; // 平局
else if ((user == ROCK && ai == SCISSORS) ||
(user == PAPER && ai == ROCK) ||
(user == SCISSORS && ai == PAPER)) {
return 1; // 用户赢
} else {
return -1; // AI赢
}
}
int main() {
srand(time(0)); // 设置随机数种子
enum Choices user_choice, ai_choice;
printf("欢迎来到取球博弈游戏!\n");
printf("请输入你的选择(R for Rock, P for Paper, S for Scissors):");
scanf("%c", &user_choice);
while (user_choice != 'R' && user_choice != 'P' && user_choice != 'S') {
printf("输入无效,请重新选择:");
scanf("%c", &user_choice);
}
ai_choice = (enum Choices)(rand() % 3); // AI随机选择
int result = compare_choices(user_choice, ai_choice);
if (result > 0) {
printf("你选择了:%s,AI选择了:%s,恭喜你,你赢了!\n", getChoiceStr(user_choice), getChoiceStr(ai_choice));
} else if (result < 0) {
printf("你选择了:%s,AI选择了:%s,很遗憾,你输了!\n", getChoiceStr(user_choice), getChoiceStr(ai_choice));
} else {
printf("平局!你选择了:%s,AI也选择了:%s。\n", getChoiceStr(user_choice), getChoiceStr(ai_choice));
}
return 0;
}
char* getChoiceStr(enum Choices choice) {
switch (choice) {
case ROCK: return "Rock";
case PAPER: return "Paper";
case SCISSORS: return "Scissors";
default: return "";
}
}
```
在这个游戏中,用户通过输入字母R、P或S来选择,然后电脑随机选择一个。比较两个选择后,程序会显示结果。
阅读全文