C语言实现小猫钓鱼游戏
本文实例为大家分享了C语言实现小猫钓鱼游戏的具体代码,供大家参考,具体内容如下
#include#include #include #include #include typedefstruct { intdata[3600]; intcol[3600]; inttop; }stack; typedefstruct { intdata[3600]; intcol[3600]; inthead; inttail; }queue; queuep1,p2; stacktable; voidprintmenu(); voiddeal(); voidprintp1(); voidprinttable(); voidprintzzz(); voidjudge(inta,intplayer); voidgame(); voidask(); intmain() { while(1) { charch; printmenu(); scanf("%c",&ch); switch(ch) { case'1': game(); break; case'2': exit(0); default: system("cls"); break; } } return0; } voidprintmenu() { printf("*****************************\n"); printf("**\n"); printf("**\n"); printf("*金钩钓鱼*\n"); printf("**\n"); printf("**\n"); printf("**\n"); printf("*****************************\n"); printf("\n\n\n"); printf("游戏规则:\n"); printf("每人各拿一半的牌,然后你放1张牌,\n"); printf("他放一张牌,如跟上面的牌一样,\n"); printf("即可把当中的牌全部吃掉,\n"); printf("直至对手手上无牌为止。\n\n\n"); printf("输入1开始游戏\n"); printf("输入2退出程序\n"); } voiddeal() { p1.head=1; p1.tail=1; p2.head=1; p2.tail=1; table.top=0; inti,card,book[60]; srand((unsigned)time(0)); memset(book,0,sizeof(book)); for(i=1;i<=27;) { card=rand()%55; if(card==0) continue; elseif(card>=1&&card<=13&&book[card]==0) { p1.data[p1.tail]=card; p1.col[p1.tail]=1; p1.tail++; book[card]=1; i++; } elseif(card>=14&&card<=26&&book[card]==0) { p1.data[p1.tail]=card-13; p1.col[p1.tail]=2; p1.tail++; book[card]=1; i++; } elseif(card>=27&&card<=39&&book[card]==0) { p1.data[p1.tail]=card-26; p1.col[p1.tail]=3; p1.tail++; book[card]=1; i++; } elseif(card>=40&&card<=52&&book[card]==0) { p1.data[p1.tail]=card-39; p1.col[p1.tail]=4; p1.tail++; book[card]=1; i++; } elseif(card==53) { p1.data[p1.tail]=card; p1.col[p1.tail]=5; p1.tail++; book[card]=1; i++; } elseif(card==54) { p1.data[p1.tail]=card; p1.col[p1.tail]=5; p1.tail++; book[card]=1; i++; } } for(i=1;i<=27;) { card=rand()%55; if(card==0) continue; elseif(card>=1&&card<=13&&book[card]==0) { p2.data[p2.tail]=card; p2.col[p2.tail]=1; p2.tail++; book[card]=1; i++; } elseif(card>=14&&card<=26&&book[card]==0) { p2.data[p2.tail]=card-13; p2.col[p2.tail]=2; p2.tail++; book[card]=1; i++; } elseif(card>=27&&card<=39&&book[card]==0) { p2.data[p2.tail]=card-26; p2.col[p2.tail]=3; p2.tail++; book[card]=1; i++; } elseif(card>=40&&card<=52&&book[card]==0) { p2.data[p2.tail]=card-39; p2.col[p2.tail]=4; p2.tail++; book[card]=1; i++; } elseif(card==53&&book[card]==0) { p2.data[p2.tail]=card; p2.col[p2.tail]=5; p2.tail++; book[card]=1; i++; } elseif(card==54&&book[card]==0) { p2.data[p2.tail]=card; p2.col[p2.tail]=5; p2.tail++; book[card]=1; i++; } } return; } voidprintp1() { inti; printf("您的牌有:\n"); for(i=p1.tail-1;i>=p1.head;i--) { if(p1.col[i]==1) { printf("方片"); } elseif(p1.col[i]==2) { printf("红桃"); } elseif(p1.col[i]==3) { printf("黑桃"); } elseif(p1.col[i]==4) { printf("梅花"); } if(p1.data[i]==11) { printf("J"); } elseif(p1.data[i]==12) { printf("Q"); } elseif(p1.data[i]==13) { printf("K"); } elseif(p1.data[i]==53) { printf("小王"); } elseif(p1.data[i]==54) { printf("大王"); } else printf("%d",p1.data[i]); } printf("\n\n"); return; } voidprinttable() { inti; printf("桌上的牌有:\n"); if(table.top==0) { printf("(无)\n"); } for(i=1;i<=table.top;i++) { if(table.col[i]==1) { printf("方片"); } elseif(table.col[i]==2) { printf("红桃"); } elseif(table.col[i]==3) { printf("黑桃"); } elseif(table.col[i]==4) { printf("梅花"); } if(table.data[i]==11) { printf("J"); } elseif(table.data[i]==12) { printf("Q"); } elseif(table.data[i]==13) { printf("K"); } elseif(table.data[i]==53) { printf("小王"); } elseif(table.data[i]==54) { printf("大王"); } else printf("%d",table.data[i]); } printf("\n\n\n"); return; } voidprintzzz() { system("cls"); Sleep(400); printf("正"); Sleep(400); printf("在"); Sleep(400); printf("出"); Sleep(400); printf("牌"); Sleep(400); printf("."); Sleep(400); printf("."); Sleep(400); printf("."); Sleep(800); judge(table.data[table.top],1); system("cls"); printf("玩家2开始回合!!\n\n\n\n"); printtable(); table.top++; table.data[table.top]=p2.data[p2.head]; table.col[table.top]=p2.col[p2.head]; p2.head++; Sleep(600); printf("玩"); Sleep(400); printf("家"); Sleep(400); printf("2"); Sleep(400); printf("正"); Sleep(400); printf("在"); Sleep(400); printf("出"); Sleep(400); printf("牌"); Sleep(400); printf("."); Sleep(400); printf("."); Sleep(400); printf("."); Sleep(1000); judge(table.data[table.top],2); return; } voidjudge(inta,intplayer) { inti,j,sum=2; if(player==1) { for(i=table.top-1;i>=1;i--,sum++) { if(a==table.data[i]||((a==53||a==54)&&(table.data[i]==53||table.data[i]==54))) { for(j=table.top;j>=i;j--) { p1.data[p1.tail]=table.data[table.top]; p1.col[p1.tail]=table.col[table.top]; p1.tail++; table.top--; } break; } } if(i!=0) { system("cls"); Sleep(400); printf("玩"); Sleep(400); printf("家"); Sleep(400); printf("1"); Sleep(400); printf("赢"); Sleep(400); printf("了"); Sleep(400); printf("%d",sum); Sleep(400); printf("张"); Sleep(400); printf("牌"); Sleep(400); printf("!"); Sleep(400); printf("!"); Sleep(400); printf("!"); Sleep(2000); system("cls"); } } elseif(player==2) { for(i=table.top-1;i>=1;i--,sum++) { if(a==table.data[i]||((a==53||a==54)&&(table.data[i]==53||table.data[i]==54))) { for(j=table.top;j>=i;j--) { p2.data[p2.tail]=table.data[table.top]; p2.col[p2.tail]=table.col[table.top]; p2.tail++; table.top--; } break; } } if(i!=0) { system("cls"); Sleep(400); printf("玩"); Sleep(400); printf("家"); Sleep(400); printf("2"); Sleep(400); printf("赢"); Sleep(400); printf("了"); Sleep(400); printf("%d",sum); Sleep(400); printf("张"); Sleep(400); printf("牌"); Sleep(400); printf("!"); Sleep(400); printf("!"); Sleep(400); printf("!"); Sleep(2000); system("cls"); } } return; } voidgame() { deal(); getchar(); while(p1.head!=p1.tail&&p2.head!=p2.tail) { system("cls"); inti; printf("玩家1开始回合!!\n\n\n\n"); printp1(); printtable(); printf("按回车来出牌\n"); getchar(); table.top++; table.data[table.top]=p1.data[p1.head]; table.col[table.top]=p1.col[p1.head]; p1.head++; printzzz(); } if(p1.head==p1.tail) { printf("恭喜您取得了胜利!!!\n"); printf("感谢使用本程序\n"); system("pause"); } else { printf("你没有牌了!"); printf("不好意思,您输了。。。\n"); printf("不要灰心,可以再来一局!!\n"); system("pause"); } return; } voidask() { charch; system("cls"); printf("你确定要退出?\n"); printf("(输入y确认对出)\n"); printf("Y/N\n"); scanf("%c",&ch); if(ch=='y'||ch=='Y') { exit(0); } else { return; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。