红中麻将自动代打设计

        有粉丝问,麻将是否可以实现自动代打的,当然是可以的,只是以前没那么多时间精力去搞,最近相对比较闲,应粉丝要求,我又动手实现了一个麻将的自动代打程序。

先看效果红中麻将自动代打设计_第1张图片

图片效果是不过瘾的,当然还有视频效果 麻将自动代打算法_桌游棋牌热门视频

        这是一个癞子麻将,比普通麻将要复杂很多,核心算法设计如下:

先将麻将转换成索引:0-8代表万子,9-17代表索子,18-26代表筒子,27-33代表东,南,西,北,中,发,白,所有的索引连在一起是为了方便遍历。

算法组合时,要将癞子抽出来,这样剩下的是非癞子牌进行组合,组合排序时,不够的用癞子补充,穷举所有的组合,最后组合出3x+2这样的公式就是能胡牌了。

       胡牌算法并不难,网上一搜索一大把,难的是如何才能设计打得好,我的的设计思路是:对手上的牌进行打分,如果是单牌,1,9这些就是1分,2,8这些就2分,5,6就3分这样,两个牌的情况11,23,35,这样的就分别是30,20,15,如果是三个牌的组合,就有111,123,456,他们的分数分别是50,30,40。设计好他们的组合分数后,就方便操作了,如果要出一张牌,那么就是尝试去掉每一张牌,这样手上分数组合最高的,证明这张牌应该打出去。碰一张,和杠一张牌也是如此碰牌操作是300分,杠牌操作是350分,如果操作后牌的组合分数大于原来的组合分数,证明是值得去碰牌的,听牌时就选择牌面最多的胡牌张数进行叫牌,红中麻将没有大胡可言,最先胡牌才是王道,当然其他麻将可以根据他的番数来进行酌情选择。麻将算法的智能代打远比扑克简单很多,由于时间有限,视频里面的打法还相对粗糙一点,待我有空,还要将他优化成可以跟人抗衡的自动代打算法,算法的介绍就到这里,至于如何识别,如何操作,前面的跑得快文章都有所介绍,需要你往后翻看。

        有兴趣的可以加私信,相互研究学习,共同进步。

你可能感兴趣的:(c++,算法,python,算法,人工智能,c++,python)