C语言猜拳游戏代码及分析
break; case5: //排序 cmp(p,count); break; case6: //返回 return; break; default: printf("输入错误,请重新输入"); } } } //排序控制函数 void cmp(game_t *p,int *count){ intchose=0; while(TRUE){ chose=0; cmp_menu(); printf("请选择:"); scanf("%d",&chose); fflush_in(); switch(chose){ case1: //金额 qsort(p,*count,sizeof(game_t),cmp_money); printf("排序成功"); break; case2: //胜率 win_times(p,count); printf("排序成功"); break; case3: //返回 return; break; default: printf("输入错误,请重新输入"); } } } //胜率函数 void win_times(game_t *p,int *count){ doublewins[100]={0.0}; doublei=0,j=0; intk=0; for(k=0;k<*count;k++){ i=p[k].times; j=p[k].win; wins[k]=(i=0?0:(double)j/i*100); } qsort(wins,*count,sizeof(game_t),cmp_win); } //按胜率排序函数 int cmp_win(const void *px,const void *py){ constgame_t *p1=px; constgame_t *p2=py; if(p1->money>p2->money) return-1; if(p1->money return1; else return0; } //按金额排序函数 int cmp_money(const void *px,const void*py){ constgame_t *p1=px; constgame_t *p2=py; if(p1->money>p2->money) return-1; if(p1->money return1; else return0; } //排序菜单 void cmp_menu(){ printf("1.按金额排序 2.按胜率排序 3.返回"); } //游戏控制函数 void game_ctrl(game_t *p,int *my){ intchose=0; doublemon=0.0; while(TRUE){ chose=0; game_menu(); printf("请选择:"); scanf("%d",&chose); fflush_in(); switch(chose){ case1: //下注 if(game_pay(p,my,&mon)==0) printf("下注成功,请开始游戏"); else printf("下注失败"); break; case2: //猜拳 game_play(p,my,&mon); break; case3: //返回 return; break; default: printf("输入错误,请重新输入"); } } } //游戏函数 void game_play(game_t *p,int *my,double*mon){ intresult=0; intradio=0; if(*mon==0){ printf("请先下注"); return; } p[*my].money-=*mon; result=game(); srand((unsigned)time(NULL)); radio=rand()%5+1; if(result==0){ p[*my].money+=0; printf("平局,余额%.2f",p[*my].money); p[*my].times+=1; } elseif(result==1){ p[*my].money+=(*mon)*radio; printf("您胜利了,奖金:%.2f余额:%.2f",(*mon)*radio,p[*my].money); p[*my].times+=1; p[*my].win+=1; } else{ printf("您输了%.2lf,余额%.2lf",*mon,p[*my].money); p[*my].times+=1; } *mon=0.0; } //游戏 0-平局,1-胜,-1-输 int game(){ intmy=0; intradio=0; while(my!=1&&my!=2&&my!=3){ printf("1.剪刀 2.石头 3.布"); printf("请选择:"); scanf("%d",&my); fflush_in(); switch(my){ case1: printf("您出的是剪刀"); break; case2: printf("您出的是石头"); break; case3: printf("您出的是布"); break; default: printf("输入错误,请重新输入"); } } srand((unsigned)time(NULL)); radio=rand()%3+1; if(radio==1) printf("电脑出的是剪刀"); elseif(radio==2) printf("电脑出的是石头"); elseif(radio==3) printf("电脑出的是布"); switch(radio-my) { case1: case-2: return-1; case2:
C语言猜拳游戏代码及分 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)