900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C语言游戏---小猫钓鱼

C语言游戏---小猫钓鱼

时间:2021-03-21 14:35:59

相关推荐

C语言游戏---小猫钓鱼

A和B两个同学玩简单的纸牌游戏,每人手里有n张牌,两人轮流出牌并依次排列在桌面上,每次出掉手里的第1张牌,出牌后如果发现桌面上有跟刚才打出的牌的数字相同的牌,则把从相同的那张牌开始的全部牌按次序放在自己手里的牌的末尾。当一个人手中的牌先出完时,游戏结束,对方获胜。

#include<stdio.h>#include<string.h>typedef struct queue{//队列int data[10000];int head;int tail;}; typedef struct stack{//栈int data[10];int top;};int main(void){ queue q1,q2;//队列 stack s;//栈 int flag=0,t,book[14];q1.head=1;q1.tail=1;q2.head=1;q2.tail=1;s.top=0;for(int i=1;i<=13;i++)//刚开始没有牌{ book[i]=0;}for(int i=1;i<=6;i++)//读入p1的牌入队{scanf("%d",&q1.data[q1.tail++]);}for(int i=1;i<=6;i++)//读入p2的牌入队{ scanf("%d",&q2.data[q2.tail++]);}while(q1.head<q1.tail && q2.head<q2.tail)//当有人没有牌的时候游戏结束{t=q1.data[q1.head];//这张牌if(book[t]==0)//桌面是否有{q1.head++;s.top++;s.data[s.top]=t;//入栈book[t]=1;//记录牌}else{q1.head++;q1.data[q1.tail]=t;q1.tail++;while(s.data[s.top]!=t){ book[s.data[s.top]]=0;//清除桌面牌 q1.data[q1.tail]=s.data[s.top];//出栈q1.tail++;s.top--;}}t=q2.data[q2.head];//同理对于p2if(book[t]==0){q2.head++;s.top++;s.data[s.top]=t;book[t]=1;}else{q2.head++;q2.data[q2.tail]=t;q2.tail++;while(s.data[s.top]!=t){ book[s.data[s.top]]=0; q2.data[q2.tail]=s.data[s.top];q2.tail++;s.top--;}}}if(q2.head==q2.tail)//判断是否p1win{printf("p1:win");}else printf("p2:win");return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。