| Introduction | | | | Output - Pressing the appropriate button on the poker |
| Online games from chess and backgammon to 1st | | | | room client. |
| person shooters are rife with people who use | | | | My Poker Bot |
| computer assisted play or computer robots - even | | | | My program was written in early 2004 with Microsoft |
| when there is no money at stake. With the appropriate | | | | .Net C++ and was developed to play at one online |
| program any player is able to play at a world | | | | room only. For the technically minded the program |
| championship level ruining the game for honest players. | | | | relied heavily on MFC and the Win32 API. 1) Data |
| What makes online poker different, given that there | | | | Gathering My bot gathered information about game |
| are huge amounts of money at stake? In this article I | | | | state and history from online poker tables by taking |
| will explain how I developed a poker bot and what I | | | | repeated screenshots and analysing the image. To |
| learnt from this experience. My conclusion is that | | | | begin with I just observed games, taking screenshots |
| although it is possible to construct a poker playing bot | | | | automatically so I could gather data on the position of |
| the threat from poker bots to the online poker player is | | | | the cards, chips and button. By determining the color of |
| extremely small to non-existent. | | | | a certain few pixels I was able to gather all this |
| "Games" Theory | | | | information about the state of the game. Eventually I |
| For interest and college courses I had previously | | | | was able to gather data from multiple poker tables (4 |
| written computer playing programs or bots for games | | | | at a time) by repeatedly bringing each window to the |
| including chess, Connect 4, Othello, backgammon, | | | | foreground and taking a screenshot. From this |
| bridge and various others. For games such as | | | | screenshot I was able to determine my cards, board |
| Connect 4, Othello, chess and backgammon where all | | | | cards, button position, who was left in the hand, pot |
| players have the same available information about the | | | | size and player bet sizes. 2) Data processing This is |
| game state, the theory on how to construct expert | | | | the component that eventually bought my poker bot |
| bots is well known. Deep search techniques, looking | | | | project to an end, unable to develop a strong enough |
| many moves ahead, are used for games such as | | | | strategy to win consistently. I tried various rules based, |
| Othello and chess. Recently (10 years ago) it was | | | | neural net and simulation techniques. At best my bot |
| discovered neural networks could be taught to play | | | | was able to make a very small profit at $1/2 and $2 |
| backgammon better than almost any human player. | | | | $4 limit hold'em, but nowhere near the thousands of |
| Games such as poker and bridge contain hidden | | | | dollars a week I envisioned earning when I started the |
| information where the players can see their own hand | | | | project. In the end it just wasn't worth my time to |
| but not that of the other players. The published theory | | | | continue to put resources into developing my poker |
| behind writing expert computer bots for these | | | | bot further. 3) Output This was the easiest component |
| incomplete information games is decades behind the | | | | to write. This involved programmatically moving the |
| complete information games and there are doubts | | | | mouse pointer to the appropriate screen co-ordinates |
| techniques will be developed so that computers can | | | | and then sending a mouse down/mouse up command |
| play at expert or world championship level. At present | | | | signalling a left-click. I did give consideration to adding |
| the best techniques for these incomplete information | | | | the ability for the bot to use chat but never progressed |
| games seem to involve some form of simulation and | | | | that far. |
| opponent modelling. | | | | Conclusion |
| Anatomy of An Online Poker Bot | | | | Although you might run into a poker playing bot whilst |
| There are 3 basics parts to a poker bot. 1) Data | | | | playing online the odds are it plays very poorly. At any |
| Gathering - observing the game state and history 2) | | | | level of play you are much more likely to run into an |
| Data Processing - using the information from the data | | | | expert human player than an expert computer player. |
| gathered to determine whether to fold, call or raise. 3) | | | | |