Python | AI斗地主
- 编程
- 2023-02-05
本期导语
这两天在GitHub上看到一个有意思的开源项目,是基于快手团队开发的开源AI斗地主—DouZero进行再次开发的。
AI斗地主,就是通过 AI 算法分析游戏画面,获取玩家角色、手牌等信息。完全自主决策这把是否叫地主、是否加倍以及如何出牌。设定好程序,不需要我们参与,AI 自己就能玩一下午。
话不多说说,直接clone下来看看AI是如何来实现财富自由的!
开发环境及工具
1.Python版本:3.9.10
2.IDE:PyCharm 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即可;
点击游戏中开始游戏后点击程序的自动开始;
如果需要自动继续下一把,点击单局按钮,使其变为自动。
往期回顾
[3]、破解付费音乐下载 V2.0
[4]、国庆 | 快结束了
[5]、七夕 | 你看我还有机会吗?