十三水摆牌高级智能算法

        十三水游戏是浙江,福建,广西一带较为流行的游戏,每家发十三张牌,分三道来摆,头道三张,中道5张,尾道5张。以前有人问到十三张自动摆法有没有水平高的,最近下雨,出不了门,闲来无事,我就尝试下用穷举法来计算每道摆法的概率来试试效果,不试不知道,和好几个老手对战玩了近两个小时,以53的胜率胜出,耳听为虚,眼见为实,看视频效果最强智能十三张摆牌算法_哔哩哔哩_bilibili,下面谈谈我的理论算法。

        十三水摆牌高级智能算法_第1张图片

        十三张并不复杂,尤其是四人的情况下,所以我决定采用了穷举法来做,头道三张摆法并不复杂,穷举也不在话下,第二道和第三道是一样的,5张牌穷举有点吃力,那么可以采用剪枝办法来做适当的优化。穷举完三道的所有摆法后进行,每道摆法取分数,要知道不是每道都可以摆到最高分的,那么只能取三道加起来的综合分,取分数综合最高的,个别特殊情况可以用策略补充一下。每道分的取分策略是计算他在这一道牌中,除去自己手上的牌,剩下的未知道的39张牌中有多少牌型能压倒他,这就是他的得分理论依据,能压倒他的牌越少,那么他的得分越高,如果头道取100分,三条AAA得分100,如果是三条 K, 手上已经有一对A的情况下,那么同样是100分,因为这时三条k可以判断最大,依此类推。

        在二人对战的情况下软件优势并不明显,当四个人时,软件计算优势就体现出来了,全手牌计算精准,人摆多有时会眼花,会漏眼,但计算机不会,2个小时后,赢了350分,算了一下,2人时大概有53的胜率,4人时55胜率。已经是非常高了,他们也是输得心服口服。如果是在限时的情况下,那么软件优势会更加明显,因为软件在最复杂牌的情况下,也就4秒就可以算出最优解法。我的机器CPU是I7最新一代的,开的四核并行计算。随着硬件的提高,软件也会变得越来越厉害,放在10年前,恐怕这是不可能做到的效果。还有更好想法的朋友可以私信我,相互交流学习,一起进步。

你可能感兴趣的:(c++,算法,python,python,c++,算法,后端,pycharm)