Dou Zero 自动出牌 优化版本
这几天闲着无聊,突然想起来之前GitHub上面有一个开源的自动玩斗地主的开源项目——DouZero,然后决定将它优化一下,于是开始了优化之路,首先当然是直接测试了,然后先稳定最基本的东西,但是这个时候并没有进行对局,随后又进行对局信息的补充,方便后面统计。
不过,腾讯的欢乐斗地主是真的坑,因为有超级加倍和明牌这个万恶之源的选项,让赢了若干把的豆子一局锅干碗净,真是没谁了,这让我收集数据十分的困难,于是只好开了个新号,去玩,但是那样的数据又不真实,于是决定新号赢到6W就直接去玩普通场,然后再收集数据。
接着我发现,胜率不超过50%,平均在44%左右,看来AI也只是普通人的水平,而且还有一种很严重的过于自信的问题,在初级场碰到了一把很奇葩的局,每人双炸,AI手中断牌特别多,居然还有1.24的高评分,为了防止AI这种过度自信,我又加了一道限制,这种炸弹牌只能在断3张的情况下加倍,不然风险太高,AI熬夜大地主打了4个小时,玩了100多局,通过统计,发现有几种牌型胜利概率比较高,于是就写了进去,给DouZeroAI辅助一下判断,然后把这类牌型统称为luck_mode,只要符合就直接超级加倍。
第一种 绝对优势 防飞机 防王炸 单支少。这种是专门打无脑叫地主抢地主的。
第二种 三张优势, 三张比较多, 单支少,整体评分 0.7以上。 这种几乎碰不到,碰到了,压制流,基本能赢。
第三种 炸弹优势,这种牌有炸弹,整体评分在0.6以上,有顺子或单支少,有对二。急速牌或送队友,大概率能赢。
第四种 单牌优势, 大牌单支多,小牌少或者有顺子,有单王外面无王炸,可抢到一次牌权直接走掉。
还有统计学上的三种牌型就不讲了。
还有特殊牌型叫地主(不会抢),做了这么多,我只想说,凡是在初级场或新手场碰见了这些玩家的名字就可以停止对局了,第二天再玩,他们分别是 “阿白, momo,欢乐马, 橡树,哄哄,嗯呢“ 统安排了,碰见了一局就可以退了,接下来可能两到三个小时,系统都不会发真牌,给的小牌数特别多(N < 10 and nums_len >= 9),而且顺子还可能会断,K或A开头,断2什么的。
另外,在原来的基础上加了特殊牌型叫地主,只要自己是第一个叫,不会抢地主的,抢的基本会失败,除非是自己的地主被抢了:
1. 强力牌(符合人类玩家眼中的好牌)。
2. 炸弹牌(炸弹较多,外面无王炸,单支少)
3. 平均牌 (外面无王炸,有2有A小牌少或有顺子一发带走)
4. 先手牌(发牌平均,先手赢的可能性很大)
如果豆子少建议玩一下不洗牌,农民是爹,只要外面没王炸,手上有四A或四K基本稳赢, (豆子要 < 4500)。去碰碰运气,另外要注意,开脚本的时候不要进了不洗牌,不然会很惨。
总结:
DouZero的优化总结:
1. 调整了AI叫牌的阈值,以及加倍时的手牌安全检查和发牌是否平均检查,防止遇到奇葩的牌局还加倍
2. 新增伪装模式,(是为了减小系统制裁的可能性,当然还有让队友大概猜到怎么和自己配合,当然制裁的时候,谁也跑不掉,加倍和明牌真的很可恶)
3. 新增自动关机选项,如果豆子输光了,自动关机。
4. 新增Aconfig_argment.py 文件,这里可以自己配置 luck_mode_check的参数和一些小的参数。

其他:像斗地主这种运气在上的游戏,主要玩的是个风险,不氪金的玩家建议去玩初级场,新手场容易被新手玩家制裁,真的很恶心,初级场还好至少愿意发真牌,但赢多了(豆子 > 8W)容易被制裁,普通场没25万不要玩,被系统制裁就可能输掉11万,只要系统安排你,那么7成会输,剩下的三成是有人脑残叫地主,抢了玩了两万局的人机的牌,系统带你躺赢,不然你和队友都要被系统安排,昨天,底牌单王就出现了四次,只玩了八局左右,而且叫地主的第一人永远都是人机。
有时候莫名其妙,打不起的时候不会显示要不起的按钮,就那样干等着,然后程序就报错了。
再提一下常见的人机名称:阿白, momo,欢乐马, 橡树,哄哄,嗯呢
安装方法很简单,先安装Python再安装Pycharm社区版,然后再是一键安装环境,接着再用PyCharm打开和运行Aconfig_argmen
优化版本的链接: 链接:https://pan.baidu.com/s/17aYSm_F1wR0nqj53AM0glg?pwd=bmnc
提取码:bmnc
--来自百度网盘超级会员V3的分享