这个扑克机器人可以在PokerStars、PartyPoker和GG Poker上自动玩牌。其他任何牌桌也可以进行映射。 它通过图像识别、蒙特卡洛模拟和基本遗传算法工作。 鼠标会自动移动,机器人可以根据大量参数潜在地连续玩几个小时。
您可以从这里下载二进制文件并直接运行可执行文件: http://www.deepermind-pokerbot.com
PartyPoker:
* 使用快进牌桌
* 选择官方PartyPoker牌桌抓取器
.. figure:: doc/partypoker.gif
PokerStars:
.. 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 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多 功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加 速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号