Skip to content

FlysonBot/poker-counter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

斗地主记牌器

欢迎使用斗地主记牌器!这是一个专为中游(中国游戏)设计的记牌器,支持普通54张牌的斗地主游戏。它能够实时跟踪游戏中剩余的牌,帮助玩家做出更明智的决策。该软件使用 Python 编写,结合 Pillow 库进行截图,利用 OpenCV 库进行图片模板匹配以识别牌型。

功能特点

  • 实时记牌:自动识别并记录已出的牌,辅助玩家做出更好的决策。
  • 悬浮窗口:以悬浮窗口形式显示,方便玩家随时查看。
  • 多窗口支持:单独显示上家和下家的出牌情况,支持透明度和位置调整。
  • 高度可自定义:可自定义区域坐标、模板匹配阈值、窗口显示位置、透明度及快捷键等。
  • 简单易用:界面简洁,操作直观,适合新手和老手使用。

软件工作原理

该软件使用 Python 编写,结合 Pillow 库进行截图,利用 OpenCV 库进行图片模板匹配以识别牌型。启动记牌器后,软件会定时对屏幕进行截图,并根据游戏状态(如等待、出牌或PASS)进行识别和标记。状态判断通过区域内蓝色占比(游戏背景颜色)和 PASS 标记的匹配来实现。识别牌型则是通过在截图区域中寻找预先保存的牌的图片。当一个区域出牌或PASS后,软件会自动移到下一个区域。游戏开始和地主位置通过寻找“【20 张】”剩余牌数的位置来判断,游戏结束则通过游戏界面上方显示的三张底牌特性来判断。软件界面使用 Tkinter 库编写。

如何使用

  1. Release 页面下载最新版本的软件,并将其解压到任意位置。
  2. 启动程序 main.exe。你可以创建桌面快捷方式以便快速启动。
  3. 更多选项可在 config.yaml 中进行自定义。

使用条件和注意事项

  • 软件对区域位置极度敏感,可能需要手动调整区域坐标以确保正常工作。
  • 默认配置文件为 1680x1050 分辨率设计,假设游戏全屏且任务栏显示。如有不同,请手动修改 config.yaml 中的区域坐标。
  • 如果牌型数字大小不同(约20x32像素),可能需要调整模板图像的大小。

配置文件修改指南

配置文件为 YAML 格式,位于软件目录下的 config.yaml 文件。包含游戏区域坐标、模板匹配阈值、日志路径等配置。文件中有大量注释,帮助你理解和修改配置。修改时,请确保截图区域的宽高不小于模板图像的宽高,并包含 PASS 标记的位置,以确保记牌器正常工作。建议不要将截图区域设得过小。日志级别建议设为 DEBUG 或 INFO,若出现问题可设为 TRACE 以捕捉更多细节。

负责任地使用软件

该软件旨在帮助记忆力较差的长者更好地体验游戏。请勿以违反游戏使用条款的方式使用该软件。

该软件仅供学习和研究使用,不得用于商业用途。

有问题或建议?

如有任何问题或建议,欢迎在 Issues 中提出。若遇到错误提示,请附上日志文件,并详细描述问题发生前后的情况。若识别出错,请上传屏幕录屏和配置文件,以便更好地理解问题。可使用 Windows 自带的游戏模式录屏功能,或下载如 Bandicam 等第三方录屏软件。

欢迎分享和奉献

喜欢这个项目?欢迎分享和奉献,让更多人使用它!为项目加星星可以帮助更多人发现它。通过在遇到问题时发布 Issue,你可以帮助我们改进软件,并帮助更多人解决问题。如果你会编程,也可以尝试为项目做出贡献,我们非常欢迎。

开发人员说明

如欲为该项目贡献代码,请按照以下步骤配置开发环境:

  1. 安装任意 Python 环境,并安装 uv 作为 Python 的包管理器:

    pip install uv
  2. 从 GitHub 上 Fork 本项目并克隆到本地:

    git clone https://github.com/your-username/poker-counter.git
  3. 进入项目目录,使用 uv 创建新的虚拟环境:

    cd poker-counter
    uv venv
  4. 激活虚拟环境:

    .venv/bin/activate
  5. 在虚拟环境中安装项目依赖:

    uv sync

完成以上步骤后,你可以在你的 IDE 中进行开发。请确保选择 .venv/bin/python3 作为你的 Python 解释器。

编译程序

如需编译该程序,请使用 PyInstaller,步骤如下:

  1. 安装 PyInstaller:

    uv pip install pyinstaller
  2. 运行编译脚本 compile.ps1 来编译程序:

    .\compile.ps1

编译完成后,生成的程序位于 dist/main 目录下。你可以在该目录下执行 main.exe 来运行程序,程序将被自动打包为zip文件。