欢迎使用斗地主记牌器!这是一个专为中游(中国游戏)设计的记牌器,支持普通54张牌的斗地主游戏。它能够实时跟踪游戏中剩余的牌,帮助玩家做出更明智的决策。该软件使用 Python 编写,结合 Pillow 库进行截图,利用 OpenCV 库进行图片模板匹配以识别牌型。
- 实时记牌:自动识别并记录已出的牌,辅助玩家做出更好的决策。
- 悬浮窗口:以悬浮窗口形式显示,方便玩家随时查看。
- 多窗口支持:单独显示上家和下家的出牌情况,支持透明度和位置调整。
- 高度可自定义:可自定义区域坐标、模板匹配阈值、窗口显示位置、透明度及快捷键等。
- 简单易用:界面简洁,操作直观,适合新手和老手使用。
该软件使用 Python 编写,结合 Pillow 库进行截图,利用 OpenCV 库进行图片模板匹配以识别牌型。启动记牌器后,软件会定时对屏幕进行截图,并根据游戏状态(如等待、出牌或PASS)进行识别和标记。状态判断通过区域内蓝色占比(游戏背景颜色)和 PASS 标记的匹配来实现。识别牌型则是通过在截图区域中寻找预先保存的牌的图片。当一个区域出牌或PASS后,软件会自动移到下一个区域。游戏开始和地主位置通过寻找“【20 张】”剩余牌数的位置来判断,游戏结束则通过游戏界面上方显示的三张底牌特性来判断。软件界面使用 Tkinter 库编写。
- 从 Release 页面下载最新版本的软件,并将其解压到任意位置。
- 启动程序
main.exe
。你可以创建桌面快捷方式以便快速启动。 - 更多选项可在
config.yaml
中进行自定义。
- 软件对区域位置极度敏感,可能需要手动调整区域坐标以确保正常工作。
- 默认配置文件为 1680x1050 分辨率设计,假设游戏全屏且任务栏显示。如有不同,请手动修改
config.yaml
中的区域坐标。 - 如果牌型数字大小不同(约20x32像素),可能需要调整模板图像的大小。
配置文件为 YAML 格式,位于软件目录下的 config.yaml
文件。包含游戏区域坐标、模板匹配阈值、日志路径等配置。文件中有大量注释,帮助你理解和修改配置。修改时,请确保截图区域的宽高不小于模板图像的宽高,并包含 PASS 标记的位置,以确保记牌器正常工作。建议不要将截图区域设得过小。日志级别建议设为 DEBUG 或 INFO,若出现问题可设为 TRACE 以捕捉更多细节。
该软件旨在帮助记忆力较差的长者更好地体验游戏。请勿以违反游戏使用条款的方式使用该软件。
该软件仅供学习和研究使用,不得用于商业用途。
如有任何问题或建议,欢迎在 Issues 中提出。若遇到错误提示,请附上日志文件,并详细描述问题发生前后的情况。若识别出错,请上传屏幕录屏和配置文件,以便更好地理解问题。可使用 Windows 自带的游戏模式录屏功能,或下载如 Bandicam 等第三方录屏软件。
喜欢这个项目?欢迎分享和奉献,让更多人使用它!为项目加星星可以帮助更多人发现它。通过在遇到问题时发布 Issue,你可以帮助我们改进软件,并帮助更多人解决问题。如果你会编程,也可以尝试为项目做出贡献,我们非常欢迎。
如欲为该项目贡献代码,请按照以下步骤配置开发环境:
-
安装任意 Python 环境,并安装 uv 作为 Python 的包管理器:
pip install uv
-
从 GitHub 上 Fork 本项目并克隆到本地:
git clone https://github.com/your-username/poker-counter.git
-
进入项目目录,使用
uv
创建新的虚拟环境:cd poker-counter uv venv
-
激活虚拟环境:
.venv/bin/activate
-
在虚拟环境中安装项目依赖:
uv sync
完成以上步骤后,你可以在你的 IDE 中进行开发。请确保选择 .venv/bin/python3
作为你的 Python 解释器。
如需编译该程序,请使用 PyInstaller,步骤如下:
-
安装 PyInstaller:
uv pip install pyinstaller
-
运行编译脚本
compile.ps1
来编译程序:.\compile.ps1
编译完成后,生成的程序位于 dist/main
目录下。你可以在该目录下执行 main.exe
来运行程序,程序将被自动打包为zip文件。