小猫钓鱼问题:
描述:初始,两个人各有n张牌(牌面0-10),顺序固定,只能按顺序出牌。然后,两个人轮流在桌面上以接龙的方式出牌,当某个人放置的牌在桌面上已经出现时,他收起相同牌面及其中间的牌作为自己的筹码,同时需要再放一张牌到桌面。某人手上的牌出完后,另一个人继续出,直到两人手上都没牌为止,输出结束时两个人手上的筹码数。

#include<iostream>using namespace std;struct queue {int head; //队列首int tail; //队列尾int data[100];
};struct stack {int data[100];int top; //栈顶
};int main() {int res1 = 0, res2 = 0;queue q1, q2;stack s;  int n;int book[11];    //记录桌上是否有某张牌q1.head = q1.tail = 1;q2.head = q2.tail = 1;   s.top = 1;    //初始化for (int i = 1; i <= 10; ++i) {book[i] = 0;      //为0说明桌上没有这张牌 i就是牌面}cin >> n;for (int i = 1; i <= n; ++i) {cin >> q1.data[q1.tail];++q1.tail;        }  for (int i = 1; i <= n; ++i) {cin >> q2.data[q2.tail];++q2.tail;}while (q1.head < q1.tail || q2.head < q2.tail) {loop:if (q1.head < q1.tail) {int t = q1.data[q1.head];if (book[t] == 0) {   //桌面没这张牌q1.head++;        //出牌s.data[s.top] = t;s.top++;         //桌上多了一张牌book[t] = 1;}else {        //桌上有这张牌q1.head++;++res1;    //当前这张牌直接进筹码while ((s.data[--s.top]) != t) {++res1;book[s.data[s.top]] = 0;}book[s.data[s.top]] = 0;    //最后一张牌进筹码++res1;book[s.data[s.top]] = 0;goto loop;}}loop2:if (q2.head < q2.tail) {int t = q2.data[q2.head];if (book[t] == 0) {   //桌面没这张牌q2.head++;        //出牌s.data[s.top] = t;s.top++;         //桌上多了一张牌book[t] = 1;}else {        //桌上有这张牌q2.head++;++res2;    //当前这张牌直接进筹码while ((s.data[--s.top]) != t) {++res2;book[s.data[s.top]] = 0;}book[s.data[s.top]] = 0;    //最后一张牌进筹码++res2;book[s.data[s.top]] = 0;goto loop2;}}}cout << res1 << " " << res2;system("pause");return 0;
}

【C++】小猫钓鱼纸牌游戏--C++实现相关推荐

  1. 纸牌游戏新版小猫钓鱼设计制作

    新版纸牌游戏<小猫钓鱼>设计制作 此游戏设计是我新创制的简单的卡牌游戏.属于儿童益智类游戏,适用于儿童的认知教育. 游戏规则很简单:找配对的牌消去. 游戏设置2个玩家对玩,鱼池置牌21张, ...

  2. 啊哈算法之纸牌游戏小猫钓鱼

    简述 本算法摘选自啊哈磊所著的<啊哈!算法>第二章第三节的题目--纸牌游戏小猫钓鱼.文中代码使用C语言编写,但是仔细看了一遍发现原书中有个细节是错误的,也就是说按照算法题目意思,原书中作者 ...

  3. 算法学习 2.3纸牌游戏——小猫钓鱼

    这是一章对前面的队列,栈的操作进行运用的一个实例.玩家A和玩家B玩纸牌游戏小猫钓鱼,游戏规则如下: 一副纸牌,平均分成两份,每人拿一份(这里就用数字代替了). 玩家A先拿出一张纸牌放在桌子上,玩家B再 ...

  4. java钓鱼_java实现纸牌游戏之小猫钓鱼算法

    星期天小哼和小哈约在一起玩桌游,他们正在玩一个非常古怪的扑克游戏--"小猫钓鱼".游戏的规则是这样的:将一副扑克牌平均分成两份,每人拿一份.小哼先拿出手中的第一张扑克牌放在桌上,然 ...

  5. 栈,队列(纸牌游戏,小猫钓鱼)

    文章目录 队列:FIFO 实现顺序队列: 1.顺序循环队基本操作 2.链队 栈 1. 顺序栈 栈的元素 初始化操作 入栈操作 判断顺序栈是否为空 栈的长度 出栈 清空一个栈 销毁顺序栈 2.链式栈 应 ...

  6. 小猫钓鱼(纸牌游戏)

    星期天小哼和小哈约在一起玩桌游,他们正在玩一个非常古怪的扑克游戏--"小猫钓鱼".游戏的规则是这样的:将一副扑克牌平均分成两份,每人拿一份.小哼先拿出手中的第一张扑克牌放在桌上,然 ...

  7. js算法之旅:用队列和栈计算出扑克玩:拖板车(小猫钓鱼) 游戏的结果

    队列是什么 存储数据的方式,先进先出.后进后出,例如排队买票 栈是什么 存储数据的方式,先进后出.后进先出,例如手枪上膛了,先打出得永远是最后上进去那发子弹 游戏规则 星期天小哼和小哈约在一起玩桌游, ...

  8. 牛客网java编程题小猫钓鱼,纸牌

    在这篇文章中,我将重新创造卡牌游戏<炉石传说>卡组制作工具的卡牌排名算法 什么是<炉石传说> 炉石传说-一个虚拟纸牌游戏 对于那些不知道的人来说,<炉石传说>是一款 ...

  9. phaser.min.js_如何使用Phaser 3,Express和Socket.IO构建多人纸牌游戏

    phaser.min.js I'm a tabletop game developer, and am continually looking for ways to digitize game ex ...

最新文章

  1. HarmonyOS系统概述
  2. (翻译)LearnVSXNow! #6 - 创建我们第一个工具集 - 序幕
  3. 2020,微服务之死?
  4. 项目中AppDelegate详解
  5. 【Codeforces】CF 5 C Longest Regular Bracket Sequence(dp)
  6. redis——新版复制
  7. java8怎么按照两个字段的乘积排序_django-orm F对象的使用 按照两个字段的和,乘积排序实例...
  8. MacOS emacs Command “pyls“ is not present on the path.报错及解决
  9. NDoc使用简要手册增加了例子代码
  10. mysql算法优化原则_Mysql语句优化的原则——让你写sql更加顺手
  11. 计算机PS属性怎么改,如何更改ps设计图尺寸
  12. 利用turtle模块画一棵树,包括枝干和树叶,并涂上颜色
  13. 计算机桌面设置,电脑怎么设置动态桌面
  14. 联想笔记本e43l_联想昭阳E43L电脑配置
  15. 《计算机达人成长之路——憧憬与迷茫篇》有钱的捧个预订场,有人的捧个评价场...
  16. printf中%p的输出应用
  17. 2.* 版本taro引入 taro-ui编译小程序阶段报错, Module not found: Can‘t resolve ‘./style/index.scss‘
  18. 什么是冒泡,怎么阻止冒泡,冒泡排序
  19. kernel 选项详解(stlinux2.3)
  20. 为什么设计思维对产品设计有帮助?

热门文章

  1. 工作5年的我,突然之间迷茫了。
  2. Swoole的基础入门
  3. 传感器的温度补偿(温度修正算法)-Senior Mao
  4. 【TWS API 问题3】盈透证券的TWS API使用过程中如何实现一个订单成交之后自动取消其他的订单?
  5. 恩施机器人编程_恩施州中小学机器人项目赛事开幕
  6. 域格9x07模块电信物联网卡(单4G卡)处理方法
  7. css实现div的高度随着另一个div的高度改变
  8. ppt目录页的设计布局有哪些
  9. js获得form表单的值$('#form1').serializeObject()/serialize()/serializeArray对比及判断表单中是否有输入框未输入值
  10. 前端实现微信小程序 支付密码输入框