当前位置: 首页 > 软件库 > 游戏/娱乐 > 休闲游戏 >

QiPai

棋牌的胡牌算法
授权协议 MIT
开发语言 C/C++ Python Google Go JavaScript Lua
所属分类 游戏/娱乐、 休闲游戏
软件类型 开源软件
地区 国产
投 递 者 王亮
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

棋牌的胡牌算法,特殊牌型判断算法

1、跑胡子算法

实现:

有C++版(基于递归,回溯)。

lua版(基于查表)。

2、高效的麻将胡牌算法,能处理任意张赖子:

速度:1S左右处理100万次每次四个赖子的麻将判胡;5秒处理1亿次八个赖子判胡(golang虚拟机上实测)。

实现:

  基于花色切分,然后查表。
  
  有多种语言版本:lua、c++、c#、golang、js、java、python。

3、无敌的拆牌判胡算法,不占用额外内存,速度、简洁度超过查表法。支持任意赖子数量。

4、特殊牌型判断:一条龙、掐张、七对、碰碰胡、十三幺、单吊、大吊车、清一色、缺门、门清。

 相关资料
  • 本文向大家介绍Java扑克牌速算24的方法,包括了Java扑克牌速算24的方法的使用技巧和注意事项,需要的朋友参考一下 已知一副扑克牌有54张,去除大王和小王,剩余52张。在其中随机抽取4张牌,利用加减乘除进行计算得到24. 从A到10,他们的值分别为1到10. 从J到K,他们对应的值是减去10以后的值。编写程序生成一副扑克牌,随机抽取4张,进行计算是否能得到24. 如果可以,列出可能的计算表达式

  • 本文向大家介绍C++扑克牌的洗牌发牌游戏设计,包括了C++扑克牌的洗牌发牌游戏设计的使用技巧和注意事项,需要的朋友参考一下 笔者在大学二年级期间,做过的一次C++程序设计:扑克牌的洗牌发牌游戏。具体内容是:除去大王和小王,将52张扑克牌洗牌,并发出5张牌。然后判断这5张牌中有几张相同大小的牌,是否是一条链,有几个同花等。 笔者在学习他人设计的基础上,完成了自己的程序设计。这里将源程序分享给大家。 

  • 假设一个赌场(C)有一个只涉及一个玩家和一个庄家的游戏。这个游戏是用m n张牌玩的,m张牌被标记为赢牌,n张牌被标记为输牌。 游戏规则/信息: > 玩家知道每个阶段的获胜牌“m”和输牌“n”的数量。 玩家开始玩“X”数量,直到所有牌都抽出。 庄家非常非常聪明,有权根据玩家在牌桌上的赌注抽取一张获胜的牌或一张失败的牌。 每次抽奖都会减少任何一个类别的牌的数量,即如果抽到中奖牌,则中奖牌的数量变为“m

  • 在第13.6节我们编写了一个洗牌算法的伪代码。假设shuffleDeck函数实现洗牌功能,其参数为一个牌堆,我们就可以这样创建牌堆并洗牌: Deck deck; // 创建一个标准的52张牌的牌堆 deck.shuffle (); // 洗牌 然后,使用subdeck函数来分几手牌: Deck hand1 = deck.subdeck (0, 4); Deck hand2 = dec

  • 本文向大家介绍请你说一说洗牌算法?相关面试题,主要包含被问及请你说一说洗牌算法?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 考察点: 公司:腾讯 1、Fisher-Yates Shuffle算法 最早提出这个洗牌方法的是 Ronald A. Fisher 和 Frank Yates,即 Fisher–Yates Shuffle,其基本思想就是从原始数组中随机取一个之前没取过的数字到新的

  • 请看函数findBisect的接口: int findBisect (const Card& card, const apvector<Card>& deck,int low, int high) { 把三个参数deck,low和high看作指定一个子牌堆的单一参数是可以说得通的。 这种事情很常见,有时我把它当作抽象参数。所谓”抽象“,我指的是在更高层次上描述函数,并非程序代码的字面意思。 例如