DeeperMind pokerbot for pokerstars, partypoker and GGPoker
This pokerbot plays
automatically on Pokerstars, Partypoker and GG Poker. Any other table can 👌 be mapped as
well. It works with image recognition, montecarlo simulation and a basic genetic
algorithm. The mouse is moved 👌 automatically and the bot can potentially play for hours
based on a large number of parameters.
You can download the binaries 👌 and run the
executable directly from here: http://deepermind-pokerbot
Running the bot:
Use Fast
Forward Tables
Select Official PartyPoker table scraper
Use Zoom Tables
Select Official
👌 Poker Stars table scraper
For Pokerstars you will need to make some adjustments to the
client. It needs to look exactly 👌 as the below, in order to run it with the Official
Pokerstars Table scraper:
Make sure to match the card styles 👌 (4 color), covered card
styles, and table styles.
Make sure your GGPoker setup looks as follows when using it
with the 👌 Official GGPoker Table:
General setup:
If you just want to run the bot, please
do the following:
Install the binearies of the bot 👌 from here:
http://deepermind-pokerbot
You can then immediately run the bot. It will analyze the
poker client, move the mouse and play 👌 in accordance with one of its pre-programmed
strategies. Most of the strategies are based on zoom or Fast Forward tables. 👌 You are
welcome to edit and imporve any strategies to optmize the play of the bot for your
needs.
In most 👌 cases it may be useful to put the poker client inside a virtual machine
to avoid it from interfering with 👌 the bot. Also, the bot will then be able to control
the mouse inside the virtual machine, without blocking the 👌 whole computer:
Download
Virtualbox: //virtualbox/
Download Windows 10 Iso File for example from here
//softlay/apps/operating-system
Create a new virtual box environment and use 👌 the
ISO file as a startup
Make sure to give the Virtualbox only 1 CPU as the computing
power is needed 👌 for the bot (mainly for OCR)
Install Partypoker or Pokerstars in the
virtual box environment
Install the pokerbot directly onto your computer 👌 (outside of
the virtual box)
In the Setup select your virtual box instance (instead of direct mouse
control)
Join the discord chat 👌 by pressing the chat button or joining this link:
//discord.gg/xB9sR3Q7r3
The current version Only works on windows
Do not obstruct
the view 👌 of the table as the bot is based on image recognition
Only one table window
should be visible.
For best performance minimize 👌 all windows in the vm, except the
table window itself
Don't use any dpi scaling in the virtualbox
In setup, try to 👌 select
your virtual machine instead of direct mouse control. That way mouse movements won't
obstruct you.
Strategy Analyzer
You can see the 👌 profitability of each strategy in the
strategy analyzer.
The bar chart indicates what action types have led to wins or losses
👌 at each stage (preflop, flop turn and river)
Looking at the stacked bar chart in more
detail, gives you clues how 👌 to adjust the strategy to maximize your wins:
Analyze
individual rounds within each stage:
Analyze individual hands:
Strategy editor
A
variety of factors are 👌 taken into consideration when the bot makes decisions and they
can be adjusted in the strategy editor:
Equity (winning probability), which 👌 is
calculated by a montecarlo simulation
Equity and minimum call/bet value need to be on
the left of the corresponding curve 👌 in order for the bot not to fold
Various other
factors, such as behaviour in the previous rounds are taken into 👌 consideration. Check
out the strategy editor for more details.
Hover over each item to see a more detailed
description
A variety of 👌 other options can be edited for each strategy:
Advice how to
improve strategies:
You will generally require at least 2000 hands played 👌 with a
strategy to draw any conclusions. Even better 5000 hands. Anything less than 1000 hands
is completely random.
Best buy 👌 in more than the minimum, this will improve the bots
performance as it has more leeway to play. For example 👌 on a 0.01/0.02 table, buy in
more than the minimum ofR$2. Ideally start withR$4 or even more.
Look at the strategy
👌 analyzer and work your way backwards. First improve the River play, then once this is
good move on to the 👌 Turn, then to the Flop etc. This is because the game is path
dependent.
If you make changes in the ranges, 👌 you may need to adapt all minimum
equities as it changes the equity calculation.
Good Luck!
Full version:
The full
version allows you 👌 to:
Edit and create new Strategies
View all Strategies of all
users
To purchase, please follow this link. You'll then receive a password 👌 within 24
hours. http://deepermind-pokerbot/purchase
Alternatively you can contact me via email
or discord and request a password directly and pay bitcoin 👌 to:
1Py5o4WLYMizXc8pFPqzD4yeCAm53BhJit
You can also get a free subscription if you make
some meaningful contribution to the codebase.
The easiest way to 👌 contribute is
by:
Adding new tables
Adding new strategies
Directly add fixes to the code and create a
pull request
Mapping new tables
The bot 👌 can learn to read new tables, either by using
templates or by training a neural network that uses data augmentation 👌 based on the
given templates.
Click this link to see a Video description how to add a new table or
watch 👌 the video on deepermind-pokerbot
The setup to add new tables looks like
this:
Open the pokerbot and click on table setup to 👌 open the window that helps you
create new tables.
Open the poker client next to it, make sure it's not dpi 👌 scaled, so
the pokerbot can take screenshots.
Start with creating a new template, you can do this
by entering a name 👌 for your template, for example Pokerstars 1-2 zoom poker. Click on
'Blank new'.
Now the first think you want to do 👌 is to take a screenshot of the
pokerstars window with the table. You can do this by pressing on the 👌 Take screenshot
button. You should not see in the lower window a full screenshot of what is on your
screen.
The 👌 first step is now to mark the top left corner of the poker tables window,
which will be the point 👌 of reference for everything else that will follow. To mark the
top left corner, you need to mark it by 👌 first clicking on the top left part of it and
then on the right lower part of it. once you 👌 have done this, it will appear in the
second window. You can save it by clicking on the "save newly 👌 selected top left corner"
button.
Now you can crop it by pressing on the crop from top left corner button. This
👌 will discard most of the screenshot and only keep the screenshot from the top left
corner and everything a few 👌 hundred pixels to the right of it and below.
Next you will
want to mark everything else in the window. Start 👌 with the Buttons search area. You can
do this again by clicking on the top left area of the buttons 👌 and then on the bottom
right area of where the buttons appear. Once you are happy with the selection, click 👌 on
the "Buttons search area".
If you hover over the buttons, you will get a more detailed
description of what you 👌 need to pay attention to.
Note that you will need to take many
screenshots, crop them (don't select the top left 👌 corner again, as this you should only
do once), instead load it and then crop the image. After that make 👌 your selection of
the different

and save them by pressing on the corresponding button. You'll need
to teach it 👌 every card and every button etc.
Notes to keep in mind:
IT IS NOT
RECOMMENDED TO CONDUCT TESTS WITH REAL ACCOUNTS UNTIL 👌 YOU VERIFY THE CORRECT
FUNCTIONING OF THE BOT (ALSO TO AVOID LOSS OF ACCOUNTS AND CAPITAL)
Minimum system
requirements to run 👌 the bot:
Windows 10 x64 or later (It may work in previous versions
but its correct operation has not been verified)
RAM 👌 memory 4 GB or more
hard drive
space 1.6 GB (as always the more the better)
Micro processor with 4 cores and 👌 4 threads
or higher
GPU is not necessary (neural training gives the option to do it on
GPU)
screen resolution 1920*1800 (it 👌 can work with less but its correct operation has
not been verified)
consider the consumption of Virtual box if used and 👌 add them to the
system explained above
Poker apps usually run on W7 or higher
VirtualBox version 7.0.12
or higher with its 👌 respective expansion pack
Running via docker
$ git clone
//github/dickreuter/Poker.git
$ cd Poker
$ docker compose up -d
$ xhost
local:root # This permits the 👌 root user on the local machine to connect to X windows
display
$ docker-compose exec app python3 main.py # once the 👌 container is running you
can launch the bot with this command
Running via python source code
Download pycharm
communite edition as an 👌 IDE from here:
//jetbrains/pycharm/download/#section=windows
Install anaconda
//anaconda/products/distribution
Create an environment with pip install -r
requirements.txt and separately run pip install tesserocr
and separately 👌 run pip
install tesserocr You also may need to get c++ runtime distributable:
//visualstudio.microsoft/downloads/
Install virtualbox from
//virtualbox/wiki/Downloads and put the 👌 poker client into the virtual box. That
way it can be controlled without having to use the mouse in your 👌 main window.
Run
main.py from pycharm after setting up the above created virtual environment as
interpreter (check youtube)
Packages and modules:
main.py: entry 👌 point
Contains user
interface and routines that help map new tables
recognize_table : Functions to
recognize the different items on the table, 👌 based on the created mapping
: Functions to
recognize the different items on the table, based on the created mapping
screen_operations 👌 : Various routines, such as taking screen shots, cropping etc
:
Various routines, such as taking screen shots, cropping etc table_setup 👌 : Routines in
relation to the gui
: Routines in relation to the gui ui_table_setup : QT user
interface. Corresponding py 👌 file is created with makegui.bat in the parent folder. To
edit the gui download QT Designer and open the .ui 👌 file.
decisionmaker.py : The
ultimate decision what action should be taken based on the input
: The ultimate
decision what action should 👌 be taken based on the input montecarlo_numpy2.py : fast
numpy based montecarlo simulation to calculate equity. Not yet working correctly. 👌 Some
tests are failing. Feel free to fix them.
: fast numpy based montecarlo simulation to
calculate equity. Not yet working 👌 correctly. Some tests are failing. Feel free to fix
them. montecarlo_python.py : relatively slow python based montecarlo for equity
calculation. 👌 Supports preflop ranges for other players.
test_montecarlo_numpy.py :
tests for the numpy montecarlo
: tests for the numpy montecarlo test_pylint.py : pylint
👌 and pydoc tests to ensure pep8 standards and static code analysis
Graphical user
interface (gui)
Download QT for open source project:
//qt.io/download-open-source
Use 👌 the qt designer to edit any of the .ui files in
gui/ui
Next Priorities
[ ] Update tests. Some are currently outdated. 👌 More tests are
needed
[ ] Add more strategies
[ ] Switch from using pytesseract to tesserocr to speed
up OCR, this 👌 should considerably speed up the bot
[ ] Better Analyze the collected data
to improve strategies
Making fixes in the code
Fixing code 👌 and making a pull request
back into the origin/master:
It will be hard for one person alone to beat the world 👌 at
poker. That's why this repo aims to have a collaborative environment, where models can
be added and evaluated.
To contribute 👌 do the following:
Get Pycharm and build the
virtual python environment. Use can do: pip install -r requirements.txt (see
above)
(see above) 👌 Clone your fork to your local machine. You can do this directly from
pycharm: VCS --> check out from version 👌 control --> git
Add as remote the original
repository where you created the fork from and call it upstream (the connection 👌 to your
fork should be called origin). This can be done with vcs --> git --> remotes
Create a
new branch: 👌 click on master at the bottom right, and then click on 'new branch'
Make
your edits.
Ensure all tests pass. Under file 👌 --> settings --> python integrated tools
switch to pytest. You can then just right click on the tests folder and 👌 run all tests.
All tests need to pass. Make sure to add your own tests by simply naming the funtion
👌 test_...
Make sure all the tests are passing. Best run pytest as described above (in
pycharm just right click on the 👌 tests folder and run it). If a test fails, you can
debug the test, by right clicking on it and 👌 put breakpoints, or even open a console at
the breakpoint:
//stackoverflow/questions/19329601/interactive-shell-debugging-with-pycharm
Commi
t your changes (CTRL+K}
Push your changes to your origin (your 👌 fork) (CTRL+SHIFT+K)
To
bring your branch up to date with upstream master, if it has moved on: rebase onto
upstream master: 👌 click on your branch name at the bottom right of pycharm, then click
on upstream/master, then rebase onto. You may 👌 need to resolve soe conflicts. Once this
is done, make sure to always force-push (ctrl+shift+k), (not just push). This can 👌 be
done by selecting the dropdown next to push and choose force-push (important: don't
push and merge a rebased branch 👌 with your remote)
Create a pull request on your github
to merge your branch with the upstream master.
When your pull request 👌 is approved, it
will be merged into the upstream/master.
Please make sure that all tests are passing,
including the pylint test. 👌 You can either run them locally on your machine, or when you
push check the travis log on github. [currently 👌 many are failing, feel free to help
fixing them!]
FAQ
No top left corner
Make sure everything looks exactly like in the
picture 👌 at the top of this documentation. The buttons need to look exactly like this
and it needs to be in 👌 English and not scaled. Colours need to be standard. Most tables
are mapped to real money. They won't work with 👌 play money. The poker table window has
to be fully visible and cannot be scaled, otherwise it won't be detected 👌 properly. In
Partypoker, when you open the table, choose table options and then choose back to
default size to make 👌 sure the table is in default size.
Tables are mapped for fast
forward and zoom games with real money. Use the 👌 Supersonic3 table for Partypoker or
McNaught table in Pokerstars.
If things still don't work, consider teaching it a new
table as 👌 described above.
Cards not recognized
Make sure everything looks exactly like
in the picture at the top of this documentation. Make sure 👌 to use real money. Tables
are different for play money. Ensure you are seated at the position as shown in 👌 the
picture above. Currently the bot only works for tables with 6 players.
Do I need to use
a virtual machine?
For 👌 Pokerstars you definitely do, otherwise you will be blocked and
your account will be frozen within minutes. For Partypoker I'm 👌 not sure. But best check
the terms and conditions.
Analyzing the log and reporting problems
In the folder where
you installed the 👌 pokerbot, there is a subfolder with the log files in /log. There are
also screenshots in /log/screenshots that may be 👌 able to help debug the problem.
Create
a issue on the link at the top of this github page
//github/dickreuter/Poker/issues or 👌 email dickreuter@gmail.
Related
projects
Training the bot by playing against itself is a separate project which can be
found here: //github/dickreuter/neuron_poker