C语言实现纸牌游戏之小猫钓鱼算法
本文实例为大家分享了C语言实现小猫钓鱼算法的具体代码,供大家参考,具体内容如下
星期天小哼和小哈约在一起玩桌游,他们正在玩一个非常古怪的扑克游戏——“小猫钓鱼”。游戏的规则是这样的:将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。当任意一人手中的牌全部出完时,游戏结束,对手获胜。(用两个队列和一个栈完成)
代码如下:
#define_CRT_SECURE_NO_WARNINGS1 #include#include /* *游戏规则是这样的,将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两个人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及中间的牌全部拿走,并依次放到自己手中的牌的末尾。当任意一个人手上的牌全部打完时,另一个人获胜 *郭文峰 *2018/9/29 */ structqueue { intdata[1000]; inthead; inttail; }; structstack { intdata[10]; inttop; }; intmain(void) { structqueueq1,q2; structstacks; inti=0; intt=0; intbook[10]; //初始化队列 q1.head=1; q1.tail=1; q2.head=1; q2.tail=1; //初始化栈 s.top=0; for(i=0;i<10;i++) { book[i]=0; } //依次向队列插入6个数 //给小哼6张牌 for(i=1;i<=6;i++) { scanf("%d",&q1.data[q1.tail]); q1.tail++; } //依次向队列插入6个数 //给小哈6张牌 for(i=1;i<=6;i++) { scanf("%d",&q2.data[q2.tail]); q2.tail++; } //当队列不为空的时候执行循环 while(q1.head 0) { printf("\n桌上的牌是:"); for(i=1;i<=s.top;i++) { printf("%d",s.data[i]); } } else { printf("桌上没有牌了!\n"); } } else { printf("小哈WIN\n"); printf("小哈手上还剩的牌为:"); for(i=q2.head;i<=q2.tail-1;i++) { printf("%d",q2.data[i]); } if(s.top>0) { printf("\n桌上的牌是:"); for(i=1;i<=s.top;i++) { printf("%d",s.data[i]); } } else { printf("桌上没有牌了!\n"); } } system("pause"); return0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。