游戏规则:略
结算规则:三家中先出完手里的牌的为赢,赢的数量为对手2家剩余牌张数相加,其中未出一张者数量翻倍
目标分解:赢更多的张数
(目标分解一定要正确,举例,围棋软件,绝艺的目标为赢,星阵的目标为赢更多,所以星阵不是绝艺的对手,星阵的目标分解错误是原因之一)
具体做法:建立模型
1、分牌模型,将自己手里16-2张数量的牌按出牌规则分类
2、概率模型,计算自己手里的牌被别人打起的概率
3、算牌模型,根据出牌规则、对手出牌、计算对手手里必有牌
4、出牌模型,选择自己手里的分类好了的牌的出牌顺序,计算最优选择
分牌模型
1、按飞机优先、顺子次优先、连对再次优先等顺序每种排列方法各选几种组合方式
2、组合方式按手数从小到大选50种排列(手数:手里剩余牌几次出完为手数)
举例:2KQJ1098765444333
1、.2、KQJ109876543、4433;2、KQJ109、8765444333;2、KQJ10987654、44333……
2、.2手的分牌KQJ1098、2765444333;QJ10987、2K65444333……2手的分牌……
概率模型
1、计算每手牌的概率和总概率
2、概率计算由于算法特别复杂,所以我采用了统计的方法一次性解决所有问题
3、具体做法:2、KQJ109876543、4433;比如KQJ109876543,比他大的只有AKQJ10987654和炸弹,自己手里牌不动,剩余的32张牌对手每人随机发牌16张,发牌100次,在这100次中找AKQJ10987654和炸弹,找到多少次就是被打起的概率为多少,其他的牌型依次同样处理,这样用一个模型就能算出所有牌型被打起的几率
算牌模型
1、此处对手没有出牌故无法算牌
2、假设自己牌为AA、无K、1个Q、JJ……,自己出对J,下家出对Q,末家要不起,自己对A,下家要不起,根据规则就可以断定他们2家手上都没有炸弹,末家没有2张以上K,则可以计算出下家有3条K,末家1条K
3、其他规则算法,比如自己手上没有4,自己出张3,下家出张4,就可以判定末家最少有一张4,下家如果有4张4大概率不会拆炸弹
出牌模型
将分好的牌的几种选择按一定的规则处理(比如去掉一个几率最高,AA.JJ放在一起算一组等),分别计算对手的出牌张数和概率,计算最后赢得张数,选最优结果
举例:2KQJ1098765444333
计算过程一、2.概率为0%,KQJ109876543概率17%,4433概率84%去掉。结果为32+16-1117%=46张
计算过程二、2.概率为0%,KQJ109概率为65%去掉,444333概率为7%,结果为32+32-107%=63张
经过综合计算先出444333!
经过一系列计算,每出一次牌计算一次,每次取最优结果,就是人工智能AI,经过实战检验效果很好,智能程度远超国内任何其他厂家的人工智能AI!