雀魂自动化AI SDK使用教程
1. 项目介绍
majsoul_wrapper
是一个用于自动化雀魂(Mahjong Soul)游戏的SDK。该项目通过WebSocket抓包技术实时解析雀魂对局信息,并模拟鼠标动作进行出牌操作。majsoul_wrapper
提供了一个完整的输入输出接口,供第三方AI调用,以实现自动化在《雀魂》中打麻将。
主要功能
- 实时解析对局信息:通过WebSocket抓包技术,实时获取对局中的各种信息。
- 模拟鼠标动作:通过图像识别技术,模拟鼠标操作进行出牌、立直等动作。
- SDK接口:提供了一系列回调函数,方便开发者实现自己的AI逻辑。
2. 项目快速启动
2.1 环境准备
首先,确保你已经安装了Python 3.x,并安装以下依赖库:
pip install mitmproxy selenium protobuf pyautogui opencv-python
2.2 下载项目
使用Git克隆项目到本地:
git clone https://github.com/747929791/majsoul_wrapper.git
cd majsoul_wrapper
2.3 启动mitmproxy
在项目目录中,启动mitmproxy控制台进程:
mitmdump -s addons.py
2.4 启动Chrome浏览器
确保你已经安装了Chrome浏览器,并配置了ChromeDriver。启动Chrome浏览器并绑定到mitmproxy的代理服务器端口:
python3 -m majsoul_wrapper
2.5 运行示例AI
项目提供了一个示例AI,你可以直接运行它来观察自动化打麻将的效果:
python3 MajsoulAI.py
3. 应用案例和最佳实践
3.1 自定义AI逻辑
你可以通过继承MajsoulHandler
类,并重载其中的回调函数来实现自己的AI逻辑。例如,你可以重载actionDiscardTile
函数来自定义出牌策略。
from majsoul_wrapper import MajsoulHandler
class MyAI(MajsoulHandler):
def actionDiscardTile(self, tile):
# 自定义出牌逻辑
print(f"AI 出牌: {tile}")
super().actionDiscardTile(tile)
3.2 图像识别与动作模拟
项目使用了pyautogui
和OpenCV
进行图像识别和鼠标动作模拟。你可以通过调用GUIInterface
中的函数来执行各种操作,如立直、和牌等。
from majsoul_wrapper import GUIInterface
gui = GUIInterface()
gui.calibrateMenu() # 校准界面位置
gui.actionBeginGame() # 开始一场段位场匹配
4. 典型生态项目
4.1 雀魂AI比赛
majsoul_wrapper
可以用于组织雀魂AI比赛,参赛者可以通过实现自己的AI逻辑来参与比赛,并通过SDK提供的接口进行对局。
4.2 麻将研究
该项目还可以用于麻将研究,通过实时解析对局数据,研究人员可以分析不同策略的效果,优化AI的出牌逻辑。
4.3 自动化测试
在开发过程中,majsoul_wrapper
可以用于自动化测试,通过模拟用户操作,测试游戏的各种功能和逻辑。
通过以上步骤,你可以快速上手并使用 majsoul_wrapper
实现自动化雀魂游戏。希望这个教程对你有所帮助!