ps: 前面已经写了几篇地主游戏的基本算法实现,今天来讲讲单机地主中最重要的,也是开发中最难得AI算法实现。在此声明,本博文只适合像我一样的菜鸟阅读,高手们请别喷呀,欢迎你们留点宝贵的建议和方案,谢谢! 如果你还对斗地主游戏的其他算法感兴趣欢迎你访问这个地址:
首先我们来看一下AI的定义:
“人工智能”(Artificial Intelligence)简称AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能研究如何用计算机去模拟、延伸和扩展人的智能;如何把计算机用得更聪明;如何设计和建造具有高智能水平的计算机应用系统;如何设计和制造更聪明的计算机以及智能水平更高的智能计算机等
在这里我们主要的谈论如何电脑来模拟人的思维出牌,并且实现一种具体的算法。
出牌手数:在假设别人都不要并且满足出牌规则的情况下,最多几次能把所有的牌出完,这几次就叫做出牌手数,你可千万别理解成这个手术哟。
首先我们可以将地主AI算法分成2部分来讨论。
今天我们来讨论第一部分:
拆牌是地主AI中比较重要的一部分,拆牌的好坏直接影响着地主AI算法的高效问题。
我们首先还是上一张图片,这样比较直观,有利于我们以后的讨论。
为每一种牌型定义权值的大小:
连牌 4 (每多一张牌权值+1)
连对 5(每多一对牌,权值+2)
飞机 6(每对以飞机,权值在基础上+3)
炸弹 7(包括对王在内)
看到这副牌,我们先按照人的正常思路来拆牌看是怎么样的。
我们现在就来讨论一种方案,看最终能达到这样的拆牌方案吗?
我们把拆牌的过程分几个步骤来讨论。
定义对应的牌型vector
首先 找出一副牌中只能组成一种牌型的牌(3条,对子,单张为一种牌型。)意思就是有一张牌和剩余牌中的任何一张牌没有联系。当然是否和剩余的牌有联系是需要定义一个规则的:是否和剩余的牌能组成连子,连队。如果这2个条件都不满足那么我们称这张牌和剩余的牌没有任何联系。一般情况下通过这个步骤就能找出几张牌,这样能为以后的拆牌减轻任务量。
比如上面我们就能找出:小鬼,2,A,接下来找出牌值和他们一样的牌。即小鬼,222,AA,剩下的牌就是:QQQJ,可能有人会问为什么没有找出QQQ了,这是因为Q除了能组成3条,对子以外,还能和剩余的牌组合成连牌。这里找出来是对子最终的拆牌方案中就为对子,是连3条就是3条。3条>对>单张 于是有了我们接下来的结论。
接下来我们就来拆分剩余的牌:QQQJ
根据剩余的牌我们首先提出 QQQ 66 44
我们这里可以定义对应的vector来存入我们临时找出的牌,注意里定义的vector和上面的vector是不一样的。
第二步:计算每一种牌的手数和权值问题(拆牌中的难点)
分几种情况来讨论,每次只找出剩余牌中的5张连牌,然后拿这5张连牌和剩余牌依次拼接看能否组合成更长的连牌
提出牌之后,剩余的全部牌全部看做为单牌,不管是炸弹,3条,还是对子。
1 在剩余牌中提出QQQ ,J 首先找出5张单牌,从最小还是最大由你来决定。我们这里就以最小来讨论。
最后拆出来的2组牌都没有联系,拆牌结束。
对应的权值和手数:7+1+1+3 =12 3(因为3个可以带一张或者是1对,当有对子和单张张的时候手数要减去1)
以下的几种方案也是同样的步骤,我就不写过程了,直接写最终的方案。
第三步:选出最优的一组牌作为最后的拆牌方案
通过以上步骤我们确定出了几种出牌方案,我们最后找出出牌手数最小的方案。
如果手数相同的情况下,找权值最大的一组拆牌方案。
如果2者都相同,就随机选一种就是了。(这种情况很小很小)
通过比较我们确定了下面的这一种拆牌方案。
对应的权值和手数:7+1+1+3 =12 3(因为3个可以带一张或者是1对,当有对子和单张张的时候手数要减去1)
最后加入我们最先找出的牌,最终的拆牌方案为:
呵呵,通过这样拆出来的牌是不是很符合正常人的思维呀。
我们拆这样一种拆牌方案出来是当电脑出牌的时候用。
当然我们还需要定义一个结构体来存入每张牌能组成的所有牌型。和每种牌型的最大值,这样供以后的接牌最准备。
您的位置: > > 巴登棋牌官方版
巴登棋牌官网提供的是最新的版本,改版本以斗地主为核心,提供了多种斗地主特色玩法,同时还有着街机捕鱼、四人麻将、血战到底、牌九、德州等街机棋牌玩法,喜欢打牌的朋友在这里完全不用担心玩久了会觉得腻了,不重样的玩法绝对能够给足大家的新鲜感,每天不重样的玩都是有可能的哟!
1、每周还会有很多的新奇棋牌玩法和模式等你来玩,24小时轻松兑换好礼。
2、免费开房间就可以邀请好友们一起玩,还可以自己修改规则发挥自己的创造力。
3、玩法都是很简单的,能够全面的反作弊,保证公平公正。
4、VIP会员充值就可以获得,专属皮肤、特色主题让你做最不同的牌场玩家。
1、游戏中每个玩家都有新手金币礼包赠送,持续半个月奖励不停发放!
2、该游戏免广告,玩家可享受VIP特权,每日不定时推送崭新的游戏。
3、这款游戏高手云集,喜欢挑战的话永远不怕找不到强人
4、戏永远不断线,时刻为喜欢玩牌的人提供对战的场所。精彩不停歇。
第一,大局观。一副牌拿到手里,最重要的就是先观察牌型。牌型好绝对抢,牌型差点,单多,就当农民配合,别什么牌都抢!
第二,就是想象力。打癞子手里一个癞子抢地主,而且还是手里没王的情况下,要注意牌型,可能三带比较多,有飞机这样的,比如555,666,77,3个888或者3个10,这样加上你的癞子都可以凑成3个飞机,一下子扔出去了12张牌,运气好点,底牌的癞子是你手里其中的2,3个,一下子全部仍光,这就是想象力,运气只要不是非常差,都会有好的结果。
第三,就是农民之间的配合。打癞子地主一出牌来了个大顺子,从A到10 的顺子,有炸必炸的,斗地主胜败就在一瞬间,炸完后,直接出对7以上的对子,顺子出完后一般没大的对子地主,他要么是对2,要么就是要不了,出对2,再直接炸掉,这样打单打双他都难受,地主发单,你在地主上家,一定要用2、发单地主肯定是有2要过的,你上2,他不要,直接出大点的对,让地主特别难受!
1、汇聚了来自天南海北的各地玩家,只要你上线就可以和牌友们一起解决pk。
2、特色的成就系统让高手可以尽情的展示自己的实力,取得成就还可以获得对战奖励加成。
3、实名认证十分的严格,每个玩家都只可拥有一个账号,没有机器人干扰游戏。
4、画面清新有趣,操作页面清楚易懂,小白也能玩得飞起
经典端游改编的竞速类游戏
一场奇妙又未知的冒险旅程你想来充分了解了解吗?
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。