欢迎使用斗地主记牌器!这是一个专为中游(中国游戏平台)斗地主设计的辅助工具,支持标准54张牌的斗地主游戏。它能够实时跟踪游戏中已出的牌和剩余的牌,帮助玩家做出更明智的决策。
- 实时记牌:自动识别并记录已出的牌,实时更新剩余牌数。
- 多窗口显示:主窗口显示所有牌的剩余数量,左右窗口分别显示上家和下家的出牌情况。
- 可视化区域调整:首次启动时自动显示粉色叠加层,用户可直接拖动调整各识别区域的位置和大小,无需手动修改坐标。
- 自动缩放校准:程序会在每局游戏开始时自动根据手牌大小校准模板缩放比例,无需手动配置即可适配不同分辨率。
- 颜色提示:主窗口红色标注我没有的牌,方便推算对手持牌;左右窗口红色标注对手同一回合出了多张的牌。
- 窗口位置记忆:所有窗口均可拖动,位置会自动保存,下次启动时自动恢复。
- 高度可自定义:可自定义阈值、窗口透明度、快捷键等,详见
config.yaml。
程序启动后定时对游戏窗口截图,通过 OpenCV 模板匹配识别牌型。游戏开始通过检测剩余牌数区域中显示"[20 张]"的玩家位置来判断地主,游戏结束则通过检测顶部出现的三张底牌来判断。识别到地主后,程序会自动分析手牌高度,校准当前屏幕的模板缩放比例。游戏进行中,程序持续对比相邻帧的出牌区域,检测到变化时记录出牌。界面使用 Tkinter 编写,识别在后台线程运行。
- 从 Release 页面下载最新版本,解压到任意位置。
- 启动
main.exe。 - 首次启动时程序会自动显示区域调整叠加层(粉色边框),拖动各边框使其对准游戏画面中对应的区域,完成后按
C键隐藏。 - 点击「打开记牌器」开始记牌。
- 更多选项可在
config.yaml中自定义。
- 程序仅支持 Windows。
- 程序通过窗口标题定位游戏窗口,默认搜索标题含「斗地主」的窗口,如有不同请修改
config.yaml中的GAME_WINDOW_TITLE。 - 如果识别效果不好,可尝试调低
config.yaml中的card阈值,或通过叠加层重新调整区域位置。
该软件旨在帮助记忆力较差的长者更好地体验游戏。请勿以违反游戏使用条款的方式使用该软件。
该软件仅供学习和研究使用,不得用于商业用途。
如有任何问题或建议,欢迎在 Issues 中提出。若遇到错误提示,请附上日志文件(按 L 键打开),并详细描述问题发生前后的情况。若识别出错,请上传屏幕录屏和配置文件。
喜欢这个项目?欢迎分享和贡献!为项目加星星可以帮助更多人发现它。如果你会编程,也非常欢迎提交 Pull Request。
如欲为该项目贡献代码,请按照以下步骤配置开发环境:
-
安装任意 Python 环境,并安装 uv 作为包管理器:
pip install uv
-
Fork 本项目并克隆到本地:
git clone https://github.com/your-username/poker-counter.git cd poker-counter
-
安装项目依赖(uv 会自动创建虚拟环境):
uv sync --all-groups
-
在 IDE 中选择
.venv/Scripts/python.exe作为 Python 解释器,即可开始开发。
在 Windows 上运行编译脚本:
.\compile.ps1编译完成后,程序位于 dist/main/ 目录下,并自动打包为 zip 文件(含版本号)。如需跳过打包步骤:
.\compile.ps1 -nozip