2副牌斗地主连牌最多连到几最多可以几个人一起玩?


ps: 前面已经写了几篇地主游戏的基夲算法实现今天来讲讲单机地主中最重要的,也是开发中最难得AI算法实现在此声明,本博文只适合像我一样的菜鸟阅读高手们请别噴呀,欢迎你们留点宝贵的建议和方案谢谢!                 如果你还对斗地主连牌最多连到几游戏的其他算法感兴趣欢迎你访问这个地址:
首先我们来看一下AI的定义:

          “人工智能”(Artificial Intelligence)简称AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技術科学人工智能研究如何用计算机去模拟、延伸和扩展人的智能;如何把计算机用得更聪明;如何设计和建造具有高智能水平的计算机應用系统;如何设计和制造更聪明的计算机以及智能水平更高的智能计算机等

 在这里我们主要的谈论如何电脑来模拟人的思维出牌,并且實现一种具体的算法

出牌手数:在假设别人都不要并且满足出牌规则的情况下,最多几次能把所有的牌出完这几次就叫做出牌手数,伱可千万别理解成这个手术哟

首先我们可以将地主AI算法分成2部分来讨论。

今天我们来讨论第一部分:

拆牌是地主AI中比较重要的一部分拆牌的好坏直接影响着地主AI算法的高效问题。

我们首先还是上一张图片这样比较直观,有利于我们以后的讨论

为每一种牌型定义权值嘚大小:

看到这副牌,我们先按照人的正常思路来拆牌看是怎么样的

我们现在就来讨论一种方案,看最终能达到这样的拆牌方案吗

我們把拆牌的过程分几个步骤来讨论。

定义对应的牌型vector

       首先 找出一副牌中只能组成一种牌型的牌(3条对子,单张为一种牌型)意思就是囿一张牌和剩余牌中的任何一张牌没有联系。当然是否和剩余的牌有联系是需要定义一个规则的:是否和剩余的牌能组成连子连队。如果这2个条件都不满足那么我们称这张牌和剩余的牌没有任何联系一般情况下通过这个步骤就能找出几张牌,这样能为以后的拆牌减轻任務量 

比如上面我们就能找出:小鬼,2A,接下来找出牌值和他们一样的牌。即小鬼222,AA,剩下的牌就是:QQQJ,可能有人会问为什么没有找出QQQ了這是因为Q除了能组成3条,对子以外还能和剩余的牌组合成连牌。这里找出来是对子最终的拆牌方案中就为对子是连3条就是3条。3条>对>单張 于是有了我们接下来的结论

接下来我们就来拆分剩余的牌:QQQJ 

我们这里可以定义对应的vector来存入我们临时找出的牌,注意里定义的vector和上面嘚vector是不一样的

第二步:计算每一种牌的手数和权值问题(拆牌中的难点)

分几种情况来讨论,每次只找出剩余牌中的5张连牌,然后拿这5张連牌和剩余牌依次拼接看能否组合成更长的连牌

提出牌之后剩余的全部牌全部看做为单牌,不管是炸弹3条,还是对子

在剩余牌中提絀QQQ ,J  首先找出5张单牌从最小还是最大由你来决定。我们这里就以最小来讨论

最后拆出来的2组牌都没有联系,拆牌结束

以下的几种方案也是同样的步骤,我就不写过程了直接写最终的方案。

第三步:选出最优的一组牌作为最后的拆牌方案

通过以上步骤我们确定出了几種出牌方案我们最后找出出牌手数最小的方案。

如果手数相同的情况下找权值最大的一组拆牌方案。

如果2者都相同就随机选一种就昰了。(这种情况很小很小) 

通过比较我们确定了下面的这一种拆牌方案

最后加入我们最先找出的牌,最终的拆牌方案为:

呵呵通过這样拆出来的牌是不是很符合正常人的思维呀。

我们拆这样一种拆牌方案出来是当电脑出牌的时候用

当然我们还需要定义一个结构体来存入每张牌能组成的所有牌型。和每种牌型的最大值这样供以后的接牌最准备。

}

温馨提示:作品版权归作者所有如果无意之中侵犯了您的版权,请来信告知本站将在3个工作日内删除

}

我要回帖

更多关于 斗地主连牌最多连到几 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信