📄 b0226078_c6.c
字号:
#include<conio.h>
#include<stdio.h>
int count=1;/*取火柴的次数 */
/*int failure=0;*/
/*int win=0;*/
void rule()
{
/* clrscr();*/
printf("\t-------------------\n");
printf("\t- 取火柴游戏 -\n");
printf("\t- Wrinting by crl -\n");
printf("\t-------------------\n");
printf("游戏规则:\n");
printf("\t===========================================\n");
printf("\t*有一堆火柴,两人轮流取,一人一次可取1根或2根*\n\t*或3根,最后剩下的火柴谁取得,谁就获胜!*\n\t===========================================\n");
printf("\n说明:\t\002\002 如果能连续胜5次,你将有意外的惊喜!!\002\002\n");
}
int select_menu()
{
int s;
do{
printf("\n选择菜单:\n");
printf("\t------------\n");
printf("\t1.计算机先取\n");
printf("\t2.玩家先取\n");
printf("\t------------\n");
printf("请确定谁先取:(1 or 2):\t");
scanf("%d",&s);
}while(s!=1&&s!=2);
return s;
}
int f1(int pass)
{
int ra;
do
{
ra=(int)(rand()%4);
}while(ra<=0||ra>3);
if(pass%4==0){
printf("\n第%d次 计算机取火柴:\t** %d",count,ra);
pass=pass-ra;
printf("\t\t还剩下……%d根火柴\n",pass);
}
else{
printf("\n第%d次 计算机取火柴:\t** %d",count,pass%4);
pass=pass-pass%4;
printf("\t\t还剩下……%d根\n",pass);
}
++count;
return pass;
}
int f2(int pass)
{
int fetch;
do
{
printf("\n第%d次 请玩家取火柴:\t",count);
scanf("%d",&fetch);
if(fetch>0&&fetch<4&&fetch<=pass) break;
}while(1);
pass=pass-fetch;
++count;
return pass;
}
void main()
{
char c;
int flag;
int match_num;
int time=0;
int remainder;
int failure=0;
int win=0;
rule();
do
{
count=1;
time++;
printf("\n\t#第%d局……\n",time);
flag=select_menu();
do
{
printf("\n请输入火柴的数目(大于20):\t");
scanf("%d",&match_num);
}while(match_num<=20);
remainder=match_num;
if(flag==1)
{
while(1)
{
remainder=f1(remainder);
if(remainder==0)
{
printf("\n\t\001计算机胜!\001\n");
failure++;
break;
}
remainder=f2(remainder);
if(remainder==0)
{
printf("\n\t\001Oh,你真棒!!\001\n");
win++;
break;
}
}
}
else
{
while(1)
{
remainder=f2(remainder);
if(remainder==0)
{
printf("\n\t\001Oh,你真棒!!\001\n");
win++;
break;
}
remainder=f1(remainder);
if(remainder==0)
{
printf("\n\001计算机胜\001\n");
failure++;
break;
}
}
}
printf("\n--------------------------------------------------------------------------------\n");
printf("统计:\t总局数:%d\t胜:%d局\t败:%d局\t得分:%0.1f",win+failure,win,failure,(float)win/(float)(win+failure)*100);
printf("\n--------------------------------------------------------------------------------\n");
if(win==5&&(float)win/(float)(win+failure)*100==100.0) break;
do{
/* clrscr();*/
getchar();
printf("\n你还要继续吗?(Y/N?)……");
c=getchar();
getchar();
}while(!(c=='Y'||c=='y'||c=='N'||c=='n'));
}while(c=='Y'||c=='y');
if(win==5&&(float)win/(float)(win+failure)*100==100.0) printf("哈哈……\n你被骗了!什么也没有啦!!\n\002 \002 \0002 \002 \002");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -