Poker

Poker

多平台实时对战的智能德州扑克机器人

DeeperMind是一款开源的德州扑克机器人,支持Pokerstars、Partypoker和GGPoker等多个平台的实时对战。它结合图像识别、蒙特卡洛模拟和遗传算法,可长时间自主操作。该项目提供策略分析和编辑功能,支持用户优化策略。DeeperMind还允许添加新桌面和代码贡献,是一个不断发展的社区协作项目。

DeeperMind扑克机器人图像识别蒙特卡洛模拟策略分析Github开源项目

DeeperMind扑克机器人适用于PokerStars、PartyPoker和GGPoker

这个扑克机器人可以在PokerStars、PartyPoker和GG Poker上自动玩牌。其他任何牌桌也可以进行映射。 它通过图像识别、蒙特卡洛模拟和基本遗传算法工作。 鼠标会自动移动,机器人可以根据大量参数潜在地连续玩几个小时。

您可以从这里下载二进制文件并直接运行可执行文件: http://www.deepermind-pokerbot.com

运行机器人:

PartyPoker:

* 使用快进牌桌
* 选择官方PartyPoker牌桌抓取器

.. figure:: doc/partypoker.gif

PokerStars:
  • 使用Zoom牌桌
  • 选择官方PokerStars牌桌抓取器
  • 对于PokerStars,您需要对客户端进行一些调整。为了使用官方PokerStars牌桌抓取器运行,它需要看起来完全如下所示:
  • 确保匹配牌的样式(4色)、盖住的牌的样式和牌桌样式。

.. figure:: doc/ps-example.png

GGPoker:

使用官方GGPoker牌桌时,确保您的GGPoker设置如下所示:

.. figure:: doc/ggpk2.png


一般设置:

如果您只想运行机器人,请执行以下操作:

从这里安装机器人的二进制文件:http://www.deepermind-pokerbot.com

然后您可以立即运行机器人。它将分析扑克客户端,移动鼠标,并根据其预编程的策略之一进行游戏。大多数策略都是基于Zoom或快进牌桌的。 欢迎您编辑和改进任何策略,以优化机器人的游戏以满足您的需求。

在大多数情况下,将扑克客户端放在虚拟机中可能很有用,以避免它干扰机器人。此外,机器人将能够在虚拟机内控制鼠标,而不会阻塞整个计算机:

  • 下载VirtualBox:https://www.virtualbox.org/

  • 例如从这里下载Windows 10 ISO文件 https://www.softlay.com/apps/operating-system

  • 创建一个新的VirtualBox环境,并使用ISO文件作为启动

  • 确保只给VirtualBox 1个CPU,因为机器人需要计算能力(主要用于OCR)

  • 在VirtualBox环境中安装PartyPoker或PokerStars

  • 直接将扑克机器人安装到您的计算机上(在VirtualBox之外)

  • 在设置中选择您的VirtualBox实例(而不是直接鼠标控制)

  • 按聊天按钮或加入此链接加入Discord聊天:https://discord.gg/xB9sR3Q7r3

  • 当前版本仅适用于Windows

  • 不要遮挡牌桌视图,因为机器人基于图像识别

  • 只应该有一个牌桌窗口可见。

  • 为获得最佳性能,最小化虚拟机中的所有窗口,除了牌桌窗口本身

  • 不要在VirtualBox中使用任何DPI缩放

  • 在设置中,尝试选择您的虚拟机而不是直接鼠标控制。这样鼠标移动就不会妨碍您。

策略分析器

  • 您可以在策略分析器中查看每种策略的盈利能力。
  • 条形图显示了在每个阶段(翻牌前、翻牌、转牌和河牌)各种行动类型导致的赢或输

更详细地查看堆叠条形图,可以为您提供如何调整策略以最大化您的赢利的线索:

.. figure:: doc/analyzer_bar2.png

分析每个阶段内的个别回合:

.. figure:: doc/analyzer_bar3.png

分析个别牌局:

.. figure:: doc/strategy_analyzer.gif

策略编辑器

机器人做决策时会考虑多种因素,可以在策略编辑器中进行调整:

  • 权益(获胜概率),通过蒙特卡洛模拟计算
  • 权益和最小跟注/下注值需要在相应曲线的左侧,机器人才不会弃牌
  • 考虑了其他各种因素,如前几轮的行为。查看策略编辑器了解更多详情。
  • 将鼠标悬停在每个项目上以查看更详细的描述

.. figure:: doc/strategy2.png

可以为每种策略编辑各种其他选项:

.. figure:: doc/strategy_editor.gif

如何改进策略的建议:


* 您通常需要至少玩2000手才能得出任何结论。5000手更好。少于1000手的任何情况都完全是随机的。
* 最好买入超过最低限额,这将提高机器人的性能,因为它有更多回旋余地。例如,在0.01/0.02的牌桌上,买入超过最低限额$2。理想情况下从$4甚至更多开始。
* 查看策略分析器并反向工作。首先改进河牌玩法,然后一旦这个好了就转到转牌,然后到翻牌等。这是因为游戏是路径依赖的。
* 如果您在范围内进行更改,可能需要调整所有最小权益,因为它会改变权益计算。
* 祝你好运!

完整版:
~~~~~~~~~~~~~

完整版允许您:

* 编辑和创建新策略
* 查看所有用户的所有策略

要购买,请点击此链接。然后您将在24小时内收到密码。
http://www.deepermind-pokerbot.com/purchase

或者,您可以通过电子邮件或Discord直接联系我并请求密码,然后支付比特币到:
1Py5o4WLYMizXc8pFPqzD4yeCAm53BhJit

如果您对代码库做出一些有意义的贡献,您也可以获得免费订阅。

最简单的贡献方式是:

- 添加新牌桌
- 添加新策略
- 直接对代码进行修复并创建拉取请求



映射新牌桌
------------------

机器人可以学习读取新牌桌,可以使用模板或通过训练基于给定模板使用数据增强的神经网络。

`点击此链接观看如何添加新牌桌的视频说明 <https://rb.gy/jut3ws>`_ 或在www.deepermind-pokerbot.com上观看视频

添加新牌桌的设置如下所示:

.. figure:: doc/scraper.png
- 打开pokerbot并点击表格设置,打开帮助创建新表格的窗口。
- 在旁边打开扑克客户端,确保未进行DPI缩放,以便pokerbot能够截图。
- 首先创建一个新模板,输入模板名称,例如Pokerstars 1-2 zoom poker。点击"空白新建"。
- 现在第一步是截取带有牌桌的Pokerstars窗口的截图。点击"截图"按钮即可。你应该在下方窗口看到屏幕的完整截图。
- 接下来标记扑克牌桌窗口的左上角,这将作为后续所有操作的参考点。先点击左上部分,再点击右下部分来标记左上角。完成后它会出现在第二个窗口中。点击"保存新选择的左上角"按钮保存。
- 现在可以通过点击"从左上角裁剪"按钮进行裁剪。这将丢弃大部分截图,只保留左上角及其右侧和下方几百像素的部分。
- 接下来标记窗口中的其他内容。从按钮搜索区域开始。同样先点击按钮区域的左上角,再点击按钮出现位置的右下角。对选择满意后,点击"按钮搜索区域"。
- 将鼠标悬停在按钮上可以看到更详细的说明。
- 请注意,你需要多次截图、裁剪(无需再次选择左上角,只需加载后裁剪图像)。然后选择不同的图像,并点击相应按钮保存。你需要教会它识别每张牌和每个按钮等。

注意事项:
------------------------------

**强烈建议在验证机器人正确运行之前不要使用真实账户进行测试(以避免账户和资金损失)**

- 运行机器人的最低系统要求:
- Windows 10 x64或更高版本(可能在较早版本上运行,但未验证其正确性)
- 4GB或更多RAM内存  
- 1.6GB硬盘空间(越多越好)
- 4核4线程或更高的处理器
- 不需要GPU(神经网络训练可选择使用GPU)
- 1920*1800屏幕分辨率(可能在更低分辨率下运行,但未验证其正确性)

- 如果使用Virtual Box,请考虑其消耗并添加到上述系统要求中
- 扑克应用通常在Windows 7或更高版本上运行
- VirtualBox 7.0.12或更高版本及其相应扩展包

通过docker运行
------------------------------

- ``$ git clone https://github.com/dickreuter/Poker.git``
- ``$ cd Poker``
- ``$ docker compose up -d``
- ``$ xhost local:root # 允许本地机器的root用户连接到X Windows显示``
- ``$ docker-compose exec app python3 main.py # 容器运行后,可以使用此命令启动机器人``

通过Python源代码运行
------------------------------
- 从此处下载PyCharm社区版作为IDE: https://www.jetbrains.com/pycharm/download/#section=windows
- 安装Anaconda https://www.anaconda.com/products/distribution
- 下载tesserocr: https://github.com/simonflueckiger/tesserocr-windows_build/releases/download/tesserocr-v2.6.0-tesseract-5.3.1/tesserocr-2.6.0-cp311-cp311-win_amd64.whl -Out tesserocr-2.6.0-cp311-cp311-win_amd64.whl 并用pip install安装whl文件
- 创建环境并运行``pip install -r requirements.txt``,然后单独运行pip install tesserocr
- 你可能还需要获取C++运行时分发包: https://visualstudio.microsoft.com/downloads/
- 从https://www.virtualbox.org/wiki/Downloads 安装VirtualBox,并将扑克客户端放入VirtualBox中。这样可以在不使用主窗口鼠标的情况下控制它。
- 在PyCharm中将上述创建的虚拟环境设置为解释器后运行``main.py``(查看YouTube教程)

包和模块:
~~~~~~~~~~~~~~~~~~~~~

main.py: 入口点

poker.scraper
^^^^^^^^^^^^^

包含用户界面和帮助映射新表格的例程

- ``recognize_table``: 基于创建的映射识别表格上不同项目的功能
- ``screen_operations``: 各种例程,如截图、裁剪等
- ``table_setup``: 与GUI相关的例程
- ``ui_table_setup``: QT用户界面。相应的py文件通过父文件夹中的makegui.bat创建。要编辑GUI,请下载QT Designer并打开.ui文件。

poker.decisionmaker
^^^^^^^^^^^^^^^^^^^

-  ``decisionmaker.py``: 基于输入做出最终决策的行动
-  ``montecarlo_numpy2.py``: 基于快速numpy的蒙特卡洛模拟来计算权益。尚未正确运行。一些测试失败。欢迎修复。
-  ``montecarlo_python.py``: 相对较慢的基于Python的蒙特卡洛权益计算。支持其他玩家的翻牌前范围。

poker.tests
^^^^^^^^^^^

-  ``test_montecarlo_numpy.py``: numpy蒙特卡洛的测试
-  ``test_pylint.py``: pylint和pydoc测试,确保符合pep8标准和静态代码分析

图形用户界面(GUI)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- 下载开源项目的QT: https://www.qt.io/download-open-source
- 使用qt designer编辑gui/ui中的任何.ui文件

下一步优先事项
---------------

- [ ] 更新测试。一些测试目前已过时。需要更多测试
- [ ] 添加更多策略
- [ ] 从pytesseract切换到tesserocr以加快OCR速度,这应该会大大加快机器人速度
- [ ] 更好地分析收集的数据以改进策略

修复代码
~~~~~~~~~~~~~~~~~~~~~~~~

- 修复代码并向origin/master发起拉取请求:

一个人很难在扑克方面击败全世界。这就是为什么本仓库旨在创建一个协作环境,可以添加和评估模型。

要贡献,请执行以下操作:
- 获取 PyCharm 并构建虚拟 Python 环境。您可以执行:``pip install -r requirements.txt``(见上文)
- 将您的分支克隆到本地机器。您可以直接在 PyCharm 中完成:VCS --> 从版本控制检出 --> git
- 将原始仓库(您从中创建分支的仓库)添加为远程仓库,并将其命名为 upstream(与您分支的连接应命名为 origin)。这可以通过 VCS --> Git --> 远程仓库来完成
- 创建新分支:点击右下角的 master,然后点击"新建分支"
- 进行编辑
- 确保所有测试通过。在文件 --> 设置 --> Python 集成工具中切换到 pytest。然后您可以右击 tests 文件夹并运行所有测试。所有测试都需要通过。确保添加您自己的测试,只需将函数命名为 test\_... 即可
- 确保所有测试都通过。最好按上述方法运行 pytest(在 PyCharm 中只需右击 tests 文件夹并运行)。如果测试失败,您可以通过右击测试进行调试,设置断点,甚至在断点处打开控制台:https://stackoverflow.com/questions/19329601/interactive-shell-debugging-with-pycharm
- 提交您的更改(CTRL+K)
- 将更改推送到您的 origin(您的分支)(CTRL+SHIFT+K)
- 如果 upstream master 已经有更新,要使您的分支与之保持同步:变基到 upstream master:点击 PyCharm 右下角的分支名称,然后点击 upstream/master,再点击变基到。您可能需要解决一些冲突。完成后,请务必始终强制推送(ctrl+shift+k),(而不仅仅是推送)。这可以通过选择推送旁边的下拉菜单并选择强制推送来完成(重要:不要推送并合并已变基的分支到您的远程仓库)
- 在您的 github.com 上创建一个拉取请求,将您的分支合并到 upstream master
- 当您的拉取请求被批准后,它将被合并到 upstream/master
- 请确保所有测试都通过,包括 pylint 测试。您可以在本地机器上运行它们,或者在推送时检查 github 上的 travis 日志。[目前有许多测试失败,欢迎帮助修复它们!]

常见问题

左上角没有显示
~~~~~~~~~~~~~~

- 确保一切看起来与本文档顶部的图片完全一致。
    * 按钮需要看起来完全一样,并且必须是英文且未缩放。颜色需要是标准的。
    * 大多数桌子都映射到真钱。它们不适用于模拟货币。
    * 扑克桌窗口必须完全可见且不能缩放,否则无法正确检测。
    * 在 Partypoker 中,打开桌子时,选择桌子选项,然后选择**恢复默认大小**以确保桌子处于默认大小。

- 桌子映射适用于真钱的快速前进和变焦游戏。在 Partypoker 中使用 Supersonic3 桌子,或在 Pokerstars 中使用 McNaught 桌子。
- 如果仍然不工作,考虑按上述方法教它识别新桌子。

无法识别牌
~~~~~~~~~~

- 确保一切看起来与本文档顶部的图片完全一致。
    * 确保使用真钱。模拟货币的桌子是不同的。
    * 确保您坐在如上图所示的位置。
    * 目前机器人仅适用于 6 人桌。

我需要使用虚拟机吗?
~~~~~~~~~~~~~~~~~~~~

- 对于 Pokerstars,您绝对需要,否则您将在几分钟内被封禁,账户将被冻结。对于 Partypoker,我不确定。但最好查看条款和条件。

分析日志和报告问题
~~~~~~~~~~~~~~~~~~

- 在您安装扑克机器人的文件夹中,有一个包含日志文件的子文件夹 /log。在 /log/screenshots 中还有一些可能有助于调试问题的截图。
- 在此 GitHub 页面顶部的链接 https://github.com/dickreuter/Poker/issues 创建一个问题,或发送电子邮件至 dickreuter@gmail.com。

相关项目
--------
通过自我对弈训练机器人是一个单独的项目,可以在这里找到:
https://github.com/dickreuter/neuron_poker

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多