最近在学习C语言,为了监督自己每天学习,在学习的过程中坚持写程序发帖!每天学习一点点,积少成多,加油!
2020/11/8
猜拳游戏,功能很简单:和电脑进行猜拳,显示胜负。结束游戏后可显示双方出过手势和胜负历史记录
[C] 纯文本查看 复制代码 #include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define OK 0
int comp; //电脑手势
int human; //玩家手势
int result; //胜负结果
char *s[]={"石头","剪刀","布"};
char *showresult[]={"平局","你输了","你赢了"};
//游戏初始化
int initialize()
{
srand(time(NULL));
printf("猜拳游戏开始啦!\n\n");
return OK;
}
//进行游戏(电脑、玩家出拳并记录)
int game(int his_comp[],int his_human[],int count)
{
int i;
comp=rand()%3;
his_comp[count]=comp;
do
{
printf("石头剪刀布>>>");
for(i=0;i<3;i++)
printf("%d-%s ",i,s[i]);
printf(":");
scanf("%d",&human);
his_human[count]=human;
}while(human<0||human>2); //输入错误检验
printf("我出%s,你出%s,",s[comp],s[human]);
return OK;
}
//胜负判断并记录显示胜负结果
int judge(int his_result[],int count)
{
result=(human-comp+3)%3;
his_result[count]=result;
printf("%s\n\n",showresult[result]);
}
//询问是否再次游戏
int comfirm_retry()
{
int retry;
do
{
printf("再来一次吗? 0-否 1-是 :");
scanf("%d",&retry);
}while(retry!=0&&retry!=1);
return retry;
}
//历史记录
int history(int his_comp[],int his_human[],int his_result[],int count)
{
int i;
printf(">>>游戏历史记录<<<\n");
for(i=0;i<count;i++)
printf("round %d:我出%-4s,你出%-4s,%s\n",i+1,s[his_comp[i]],s[his_human[i]],showresult[his_result[i]]);
return OK;
}
int main()
{
int count; //游戏进行次数
const int MAX_count=50; //游戏最大进行次数
int his_comp[MAX_count]; //电脑历史手势
int his_human[MAX_count];//玩家历史手势
int his_result[MAX_count]; //历史胜负结果
int retry; //是否继续游戏标志
int i;
initialize(); //游戏初始化
do
{
game(his_comp,his_human,count); //进行游戏
judge(his_result,count); //胜负判断并记录显示胜负结果
retry=comfirm_retry(); //确认是否再次游戏
count++;
}while(retry==1&&count<50);
if(count==50)
printf("休息一下吧\n");
for(i=0;i<10;i++)
printf("---");
printf("\n游戏结束\n\n");
history(his_comp,his_human,his_result,count); //显示历史记录
return OK;
}
运行结果:
运行结果
|