Python | AI斗地主

本期导语

这两天在GitHub上看到一个有意思的开源项目,是基于快手团队开发的开源AI斗地主—DouZero进行再次开发的。

AI斗地主,就是通过 AI 算法分析游戏画面,获取玩家角色、手牌等信息。完全自主决策这把是否叫地主、是否加倍以及如何出牌。设定好程序,不需要我们参与,AI 自己就能玩一下午

话不多说说,直接clone下来看看AI是如何来实现财富自由的!

开发环境及工具

1.Python版本:3.9.10

2.IDEPyCharm 2019.3.3

3.主要模块:

torch模块;

GitPython模块;

gitdb2模块;

PyAutoGUI模块;

PyQt5模块;

PyQt5-sip模块;

rlcard模块;

pywin32模块;

matplotlib模块;

opencv-python模块;

以及一些python自带的模块。

完整源码

https://github.com/Vincentzyx/DouZero_For_HLDDZ_FullAuto

运行效果

关闭
观看更多
更多
正在加载
正在加载
退出全屏

视频加载失败,请刷新页面再试

刷新

自动叫牌、加倍原理

用DouZero自我博弈N局,对于随机到的每种手牌,随机生成若干种对手手牌,把该牌型和赢的局数扔进一个简单的全连接网络进行训练,得到手牌与胜率之间的关系,最后根据预期胜率,以一定阈值进行叫牌和加倍。

注意事项

仔细阅读README文档,重要的事情说一遍就行了;

请勿把游戏界面最小化,否则无法使用;

在原DouZero_For_Happy_DouDiZhu的基础上加入了自动出牌,基于手牌自动叫牌、加倍,同时修改截屏方式为窗口区域截屏,游戏原窗口遮挡不影响游戏进行;

其实也要看运气,万一被春天了呢。

如何运行

本项目基于DouZero 和 DouZero_For_Happy_DouDiZhu;

环境配置请移步项目DouZero;

clone下来直接pip install requirements.txt下载好依赖;

先运行斗地主,进入到房间,安装QQ游戏PC版:https://qqgame.qq.com;

然后使用debug_screenshot.py确认自己的屏幕缩放比;

修改main.py中屏幕缩放比为自己屏幕的缩放比;

运行main.py即可;

点击游戏中开始游戏后点击程序的自动开始;

如果需要自动继续下一把,点击单局按钮,使其变为自动。

往期回顾

[1]Python | 采集知乎盐选内容乎

[2]、Python | 采集知乎用户信息

[3]、破解付费音乐下载 V2.0

[4]、国庆 | 快结束了

[5]、七夕 | 你看我还有机会吗?