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

mahjong

麻将验胡算法
授权协议 GPL
开发语言 C/C++
所属分类 游戏/娱乐、 休闲游戏
软件类型 开源软件
地区 国产
投 递 者 荣俊杰
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

1.基础的查表法

每种牌编一个id,麻将中共34种牌(编号从0-33)因此需要至少6位空间。手牌14张也就是14*6=84位。要保存和牌的全部组合约1700万种需要约84*1700*10000=175MB存储。

显然这种方式需要的内存太大,不适合应用。

2.改进的思路如下:

为了判断手牌是否胡牌,牌本身是1万,4万等等都不重要。只要知道像123一样的数字是否连续,只要有某牌个数就足够了。因此,首先对手牌进行分组,规则为将连续的牌分成一组(1万,2万,3万,5万,6万,7万就可分为两组「123」,「567」),将每个分组以个数的形式来表示,可以减少组合的数量。具体的例子如下:

「123」→「111」
「567」→「111」
「111」→「3」
「333」→「3」
「234456」→「11211」

为了完整的表示手牌,可以将不相连的分组中间用0相连,这样就可以将多个不相连的分组用一串数字进行表示了,如以上的例子,两个分组「123」,「567」就可以表示为「1110111」;

无混验和参考文档:http://hp.vector.co.jp/authors/VA046927/mjscore/mjalgorism.html

  • Chinese Mahjong 1:每次读入13张牌,然后我们从34张牌中依次选取一张牌,看是否听这张牌,是否听这张牌,我们可以直接将这张牌直接加入到原来的13张牌中,看是否可以胡牌就行。 2:现在我们来思考一下递归的过程,首先我们选出两张牌作为对子,当这张牌的张数大于等于2的时候,将这张牌拥有的张数减去2,假如我们有多张牌可以作为将,我们一次之选其中一张,其他的牌作为刻子或者是顺子。然后选出3对

  • 题目描述 “为什么, 你们的力量在哪里得到如此地......” “我们比 1 分钟前的我们还要进步, 虽然很微小, 但每转一圈就会前进一寸。这就是钻头啊!” “那才是通向毁灭的道路。为什么就没有意识到螺旋族的极限” “那是你的极限。那只不过是在封闭的宇宙里, 象国王一样将其他生命困住的你自己的极限而已。给 我记好了, 我们的钻头将在这片宇宙中钻开风洞。已经倒下的人们的愿望, 和后继迩来的人们的希望

  • B. Tokitsukaze and Mahjong time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Tokitsukaze is playing a game derivated from Japanese mahjong. I

  • Tokitsukaze is playing a game derivated from Japanese mahjong. In this game, she has three tiles in her hand. Each tile she owns is a suited tile, which means it has a suit (manzu, pinzu or souzu) and

  • 基本情况 条、筒、万共108张 随机洗牌,每局开始,洗牌后牌序固定 按序摸牌、打牌、碰牌和胡牌 四方分别代号为0、1、2、3 1 洗牌 //洗牌 func (ms *mainStruct) xiPai() { //1 108个数随机生成 rand.Seed(time.Now().UnixNano()) ms.paiList = rand.Perm(108) } 2 初始发牌 //发牌 fu

  • Codeforces Round #635 (Div. 2)   比赛人数14830 [codeforces 1337F]   Yui and Mahjong Set   公式推导+交互式程序的测试 总目录详见https://blog.csdn.net/mrcrack/article/details/103564004 在线测评地址https://codeforces.com/contest/13

  • B. Tokitsukaze and Mahjong time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Tokitsukaze is playing a game derivated from Japanese mahjong. I

  • UVA 11210 [Chinese Mahjong] index Description Mahjong ( ) is a game of Chinese origin usually played by four persons with tiles resembling dominoes and bearing various designs, which are drawn and dis

 相关资料
  • 有一个死胡同,宽度刚好只能让一辆汽车通过,偏偏老有汽车开到死胡同来,这下麻烦了,最先开来的汽车要最后才能倒退出去。给定一个汽车开来的序列和一个可能的倒车出去的序列,请判断汽车能否都倒退出去,若能则输出Yes,否则输出No。 输入格式: 首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据首先输入一个正整数n(n≤10),代表开来的汽车数,然后输入2n个整数,其中,前n个整数表示

  • 我一直在试图做一个程序,可以递归地解决一个迷宫(应该适用于任何迷宫)。该算法的大部分递归是有效的,但是当迷宫检查死胡同和重新路由以找到解决方案(终点)的方法时,代码就不起作用了。我已经尝试了多种方法来调试,但它没有让我走远;我要么得到StackOverflowError,要么算法返回一个位置。 注意2D阵列的“字符指示符”: '*' = 墙壁 '#' = 开始 “$” = 结束 ' ' = 可能的

  • COCOS2D-X 单机麻将 项目介绍 基于最新版 Cocos2d-X 3.17 与 cocostudio V3.10 开发的单机麻将游戏,麻将算法为商业级麻将服务器端算法,整个项目代码精简、注释详细。 如果你刚刚接触Cocos2d-X 这绝对是个不错的入门项目 如果是你C++初学者或者其他语言转游戏开发,这项目没有复杂的语法绝对是一个不错的学习项目 如果你是游戏开发从业者想转行棋牌行业,这项目的

  • 小法师的粑粑麻麻是不折不扣的麻瓜,周围圈子中半个魔法师都木有,一度以为小法师毕业后是拼装维修法器的 小法师出生在酱紫的环境,╮( ̄▽ ̄")╭ ,惨不忍睹已经无法形容,可像而知与父母的交流会有多大的障碍 这次一年一度合家团圆的日子,小法师回的非常心不甘情不愿 为什么呢?这又牵扯到两点: 中国式父母 小法师辞职后没再找工作 麻瓜式的粑粑麻麻们,有种深深的自我牺牲精神 即使在如今已全面奔小康的经济大环境

  • 听周总这么说,绝影刷地惊出一身冷汗,脱口而出问道:“谁?”这话刚出口,又自知失语,后悔莫及。 道理是很明显的,既然有人到周总那里告了你的状,周总自然要为这个人保密,一来维护公司的安定团结,二来还指望着这人以后继续为他提供些线索呢。资本家的头脑是和技术工人不一样的,同样的事情,要是放到绝影和BOSSLiu身上,肯定不假思索地答道:“当然是某某某告的你。”而且语气还要放大几十个分贝,以证明对对方的指控

  • 问题内容: 我一直在计划使用simpleXML来满足序列化需求,但是我想尝试使用JSON来学习一些新知识。 这是我用来尝试使用Gson 1.7.1序列化测试POJO的ArrayList的代码。 注意:为了简化代码,我删除了字符串“ s”的读取器/写入器。 这是我得到的输出: 在我的新手看来,这看起来是正确的。仅,反序列化的对象列表包含基本对象,而不是TestObject的I序列化。谁能给我解释一下