本文实例为大家分享了C语言实现小猫钓鱼算法的具体代码,供大家参考,具体内容如下
星期天小哼和小哈约在一起玩桌游,他们正在玩一个非常古怪的扑克游戏——”小猫钓鱼”。游戏的规则是这样的:将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两人交替出牌,出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。当任意一人手中的牌全部出完时,游戏结束,对手获胜。(用两个队列和一个栈完成)
代码如下:
#定义_CRT_SECURE_NO_WARNINGS 1 # include & lt; stdio.h> # include & lt; stdlib.h>/* *游戏规则是这样的,将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两个人交替出牌,出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及中间的牌全部拿走,并依次放到自己手中的牌的末尾。当任意一个人手上的牌全部打完时,另一个人获胜 *郭文峰 * 2018/9/29 */struct队列 { int数据[1000]; int头; int尾巴; }; struct堆栈 { int[10]的数据; int最高; }; int主要(空白) { struct队列q1、q2; 堆栈结构; int i=0; int t=0; int [10];//初始化队列 q1。头=1; q1。尾=1; q2。头=1; q2。尾=1;//初始化栈 年代。顶级=0; (我=0;我& lt;10;我+ +) { 书[我]=0; }//依次向队列插入6个数//给小哼6张牌 (i=1;我& lt;=6;我+ +) { scanf (“% d”, q1.data [q1.tail]); q1.tail + +; }//依次向队列插入6个数//给小哈6张牌 (i=1;我& lt;=6;我+ +) { scanf (“% d”, q2.data [q2.tail]); q2.tail + +; }//当队列不为空的时候执行循环 而(q1。头& lt;q1。尾巴,,q2。头& lt;q2.tail) { t=q1.data [q1.head];//小哼出一张牌//判断小哼打出的牌是否能赢 如果(书[t]==0)//表明桌上没有牌面为t的牌 { q1.head + +; s.top + +; s.data [s。顶级]=t; 书[t]=1; } 其他的 { q1.head + +; q1.data (q1。尾巴]=t; q1.tail + +; 而(s.data[年代。上]!=t) { 书[s.data [s。顶级]]=0; q1.data (q1。尾巴]=s.data [s.top]; q1.tail + +; s.top——; } } t=q2.data [q2.head];//小哈出一张牌//判断小哈打出的牌是否能赢 如果(书[t]==0)//表明桌上没有牌面为t的牌 { q2.head + +; s.top + +; s.data [s。顶级]=t; 书[t]=1; } 其他的 { q2.head + +; q2.data (q2。尾巴]=t; q2.tail + +; 而(s.data[年代。上]!=t) { 书[s.data [s。顶级]]=0; q2.data (q2。尾巴]=s.data [s.top]; q2.tail + +; s.top——; } } } 如果(q2。头==q2.tail) { printf("小哼赢得\ n”); printf("小哼手上还剩的牌为:"); (我=q1.head;我& lt;=q1。尾巴- 1;我+ +) { printf (" % d”, q1.data[我]); } 如果(s。最高的在0) { printf (" \ n桌上的牌是:”); (i=1;我& lt;=s.top;我+ +) { printf (" % d”, s.data[我]); } } 其他的 { printf("桌上没有牌了! \ n”); } } 其他的 { printf("小哈赢得\ n”); printf("小哈手上还剩的牌为:"); (我=q2.head;我& lt;=q2。尾巴- 1;我+ +) { printf (" % d”, q2.data[我]); } 如果(s。最高的在0) { printf (" \ n桌上的牌是:”); (i=1;我& lt;=s.top;我+ +) { printf (" % d”, s.data[我]); } } 其他的 { printf("桌上没有牌了! \ n”); } } 系统(“暂停”); 返回0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。