题目:

一种新的麻将,只留下一种花色,并且除去了一些特殊和牌方式(例如七对子等)。规则如下:

  1. 共有36张牌,每张牌是1~9。每个数字4张牌。

  2. 你手里有其中的14张牌,如果这14张牌满足如下条件,即算作和牌:

    14张牌中有2张相同数字的牌,称为雀头。
    除去上述2张牌,剩下12张牌可以组成4个顺子或刻子。顺子为递增的连续3个数字牌(如234,567等),刻子为3个相同的数字牌(如:111,777)

1 1 1 2 2 2 6 6 6 7 7 7 9 9 可以组成1,2,6,7的4个刻子和9的雀头,可以和牌

1 1 1 1 2 2 3 3 5 6 7 7 8 9 用1做雀头,组成123,123,567,789的四个顺子,可以和牌;

1 1 1 2 2 2 3 3 3 5 6 7 7 9 无论用1 2 3 7哪个做雀头,都无法和牌

现在,小包从36张牌中抽取了13张牌,他想知道在剩下的23张中取一张牌,取到哪几种数字可以和牌。

输入描述:输入只有一行,包含13个数组,用空格分隔,每个数字在1~9之间,保证同种数字最多出现4次。

输出描述:输出同样是一行,包含1个或以上的数字。代表他再次取到哪种数字可以和牌。若满足条件的有多种,请按从小到大的顺序输出。若无法和牌,请输出一个数字0。
分析:

最多有9种抽牌方式能让小包和牌,判断每种抽牌方式是否和牌即可。问题转化为判断14张牌是否和牌。

判断是否和牌时,当有顺子或刻子,取出这些牌,然后判断剩下的牌是不是能组成顺子或刻子。递归问题。
代码:

a = input().split()
alist = [int(x) for x in a]#alist = [1, 1, 1, 2, 2, 2, 6, 6, 6, 7, 7, 7, 9]He_kinds = []# 判断是否和牌
def isHe(cardlist):l = len(cardlist)if l == 0:return Truecount0 = cardlist.count(cardlist[0])# 没出现过雀头,且第一个数字出现的次数 >= 2,且去掉雀头剩下的能组成和牌if l % 3 != 0 and count0 >= 2 and isHe(cardlist[2:]) == True:return True# 如果第一个数字出现次数 >= 3,且去掉这个刻子后剩下的能和牌if count0 >= 3 and isHe(cardlist[3:]) == True:                         return True# 如果存在顺子,且移除顺子后剩下的能和牌if cardlist[0]+1 in cardlist and cardlist[0]+2 in cardlist:c_cardlist = cardlist[1:]c_cardlist.remove(cardlist[0]+1)c_cardlist.remove(cardlist[0]+2)if isHe(c_cardlist) == True:return True# 以上条件都不满足,则不能和牌return False# 最多有9种抽牌方法可以和牌,计算每一种能不能和牌
for i in range(1, 10):if isHe(sorted(alist + [i])) == True:       # 如果这种抽牌方式可以和牌He_kinds.append(i)                      # 加入和牌类型列表print(len(He_kinds))            # 输入和牌方式有多少种
#print(He_kinds)

一个好玩的小游戏——麻神之战相关推荐

  1. 推荐一个好玩的小游戏网站

    439999小游戏是小游戏4399网站的经典游戏收集站,在2004年4399小游戏建立网站,网站推出后迅速的受到广大网友的欢迎,由于 网站中的游戏数量国语庞大所以给玩友搜索小游戏带来一定的困难,所以4 ...

  2. 继《羊了个羊》后又一个好玩的小游戏

    最近很多人在玩这个开源的在线小游戏中国制霸生成器https://lab.magiconch.com/china-ex/ ,可以在简化的中国地图上用不同颜色标记居住.游玩.去过的地方,然后生成一张图片, ...

  3. 一个好玩的小游戏破解。

    游戏介绍: 这个游戏和推箱子类似,就是给你有限的操作数,每次操作只能把箱子左移或右移,然后箱子会掉落,最后把3个以上连续相连的相同的箱子消去,如果在规定的操作数内你能让所有的箱子全部消去则通过游戏. ...

  4. 好玩的小游戏网站推荐

    向大家推荐一个好玩的小游戏网站 0054小游戏   http://www.0054.org 每天更新,天天都有新游戏

  5. c语言设置一个选择数字的程序,C语言编一个数字益智小游戏

    程序功能及运行情况 设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力.游戏共设有四个不同的小游戏,分别是一位数四则运算.两位数四则运算.找最值游戏.排序游戏.程序能实现产 ...

  6. c语言min函数_C语言探索之旅 | 第一部分第十课:第一个C语言小游戏

    内容简介 前言 准备工作和建议 我的代码 改进方案 第一部分第十一课预告 1. 前言 上一课是 C语言探索之旅 | 第一部分第九课:循环语句 . 经过前面这么多课的努力,我们终于迎来了第一个比较正式的 ...

  7. 地图标识符号大全_【好玩微信小游戏大全】虫虫逃亡:烧脑游戏佳作!强烈推荐!...

    沐沐带你发现好游戏! 只有你想不到, 没有我找不到的好游戏! 「良心好游戏推荐」 搜罗了好玩的微信小游戏大全, 模拟经营游戏.恐怖游戏.消除游戏.休闲游戏.益智游戏.解密游戏.烧脑游戏.解谜游戏大全. ...

  8. 微信小程序:智力考验看成语猜古诗句好玩解闷小游戏下载

    这是一款猜诗句的一款小程序,特别考脑力 里面拥有低,中,高三种难度 用户通过猜所提供的成语,然后猜出是哪句古诗 当然啦下方也是会有小小提示的,比如古诗作者名字 或者古诗的名字,或者第一个字是什么等等 ...

  9. 【小程序源码】看成语猜古诗句好玩解闷小游戏

    这是一款猜诗句的一款小程序,特别考脑力 里面拥有低,中,高三种难度 用户通过猜所提供的成语,然后猜出是哪句古诗 当然啦下方也是会有小小提示的,比如古诗作者名字 或者古诗的名字,或者第一个字是什么等等 ...

最新文章

  1. xshell连接不了服务器显示22端口,win10安装redis,xshell无法连接22端口
  2. 5.3.2 计算机网络传输层之TCP流量控制
  3. 手机上python编程工具3和3h有区别吗_Python3.5内置模块之time与datetime模块用法实例分析...
  4. MySQL索引原理、失效情况
  5. 实战07_SSM整合ActiveMQ支持多种类型消息
  6. solidworks模板_SOLIDWORKS 高级BOM导出工具
  7. AcWing 795. 前缀和
  8. 解析:如何在 ASP.NET 中下载文件
  9. C中的malloc()和calloc()
  10. 最长连续不重复子序列(双指针算法)
  11. hadoop权威指南-MapReduce气象程序实现过程
  12. curl error while loading shared libraries libcrypto.so.1.0.0 解决方案
  13. 算法设计与分析——图像的压缩
  14. icon 的css,【iview】icon样式
  15. ios输入框被软键盘遮住问题
  16. 2014.7.8 第一天学习hfss13
  17. 最全最新的的Java核心知识点整理!!! 【推荐】
  18. php的radio怎么设置默认是勾选的,php实现select、radio和checkbox默认选择的实例参考...
  19. 自学软件测试3个月,原来15K也就这么回事...
  20. 什么是https证书?

热门文章

  1. PHPmywind 调用方法
  2. windows11 数字键无法使用 修复办法 已解决
  3. 试用期程序员应该了解的事儿
  4. html盒子距离上边距50px,Margin的垂直外边距问题
  5. 用python开发的运维管理系统_python运维开发常用模块(一)psutil
  6. React Native微信分享
  7. linux用户管理(1)----创建用户(adduser和useradd)和删除用户(userdel)
  8. c语言中最小公倍数算法,常见算法:C语言求最小公倍数和最大公约数三种算法...
  9. IDEA使用教程(三) 功能面板
  10. VPLS和MPLS 的区别