- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(斗地主人工智能
?? “人工智能”(Artificial Intelligence)简称AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能研究如何用计算机去模拟、延伸和扩展人的智能;如何把计算机用得更聪明;如何设计和建造具有高智能水平的计算机应用系统;如何设计和制造更聪明的计算机以及智能水平更高的智能计算机等
出牌手数:在假设别人都不要并且满足出牌规则的情况下,最多几次能把所有的牌出完,这几次就叫做出牌手数,你可千万别理解成这个手术哟。
首先我们可以将地主AI算法分成2部分来讨论。
今天我们来讨论第一部分:
? 拆牌
拆牌是地主AI中比较重要的一部分,拆牌的好坏直接影响着地主AI算法的高效问题。
我们首先还是上一张图片,这样比较直观,有利于我们以后的讨论。
为每一种牌型定义权值的大小:
单张?????????????????????????? ?? 1
对子??????????????????????????? ? 2
三带??????????????????????????? ? 3
连牌?????????????????????????? ?? 4? (每多一张牌权值+1)
连对????????????????????????? ??? 5(每多一对牌,权值+2)
飞机????????????????????????? ? ?6(每对以飞机,权值在基础上+3)
炸弹??????????????????????????? ?7(包括对王在内)?
?
看到这副牌,我们先按照人的正常思路来拆牌看是怎么样的。
QQQ?? 222
AA?
小鬼 6,4
我们现在就来讨论一种方案,看最终能达到这样的拆牌方案吗?
我们把拆牌的过程分几个步骤来讨论。
第一步:找牌
定义对应的牌型vector
vectorthree //3条
vectorlianzi //连子
vectorduizi//对子
vectordanzhang //单张
vectorfly //飞机
?
???????首先?找出一副牌中只能组成一种牌型的牌(3条,对子,单张为一种牌型。)意思就是有一张牌和剩余牌中的任何一张牌没有联系。当然是否和剩余的牌有联系是需要定义一个规则的:是否和剩余的牌能组成连子,连队。如果这2个条件都不满足那么我们称这张牌和剩余的牌没有任何联系。一般情况下通过这个步骤就能找出几张牌,这样能为以后的拆牌减轻任务量。
?
比如上面我们就能找出:小鬼,2,A,接下来找出牌值和他们一样的牌。即小鬼,222,AA,剩下的牌就是:QQQJ1098766544,可能有人会问为什么没有找出QQQ了,这是因为Q除了能组成3条,对子以外,还能和剩余的牌组合成连牌。这里找出来是对子最终的拆牌方案中就为对子,是连3条就是3条。3条对单张 于是有了我们接下来的结论。
vectorthree 222
vectorduizi AA
vectordanzhang? 小鬼
?
接下来我们就来拆分剩余的牌:QQQJ1098766544
找出牌中所有的炸弹
找出牌中所有的3个
找出牌中所有的对子
根据剩余的牌我们首先提出? QQQ??????????????66??? 44
?
我们这里可以定义对应的vector来存入我们临时找出的牌,注意里定义的vector和上面的vector是不一样的。
vectorthree QQQ
vectortwo66,44
第二步:计算每一种牌的手数和权值问题(拆牌中的难点)
分几种情况来讨论,每次只找出剩余牌中的5张连牌,然后拿这5张连牌和剩余牌依次拼接看能否组合成更长的连牌
提出牌之后,剩余的全部牌全部看做为单牌,不管是炸弹,3条,还是对子。
1 在剩余牌中提出QQQ ,J1098766544? 首先找出5张单牌,从最小还是最大由你来决定。我们这里就以最小来讨论。
第一次:45678? 剩余牌为 4 6 9 10 J
第二次? 46
最后拆出来的2组牌都没有联系,拆牌结束。
方案为???????4?? 6? ?QQQ
对应的权值和手数:7+1+1+3?=12?????? 3(因为3个可以带一张或者是1对,当有对子和单张张的时候手数要减去1)
以下的几种方案也是同样的步骤,我就不写过程了,直接写最终的方案。
2在剩余牌中提出 QQQ 66?
方案为: QQQ 66?? 78910j?? 5?? 44
?对应的权值和手数:? 3+2+4+1+2=12??????????? 4
?
3.在剩余牌中提出 QQQ 44
方案为: QQQ?? 44? 678910j??? 6
对应的权值和手数:3+2+5+1?=11?????????????3
?
4 .在剩余
文档评论(0)