A simplified view of the system with one instance (from the documentation).
A view of the system with multiple instances running (from the documentation).

Texas hold'em autonomous playing system (THAPS) ended up mostly being an implementation of an architecture to play games in a client system without exposing any valuable piece of software in an untrusted and potentially hostile environment. A lot of the effort in this project was put on making the system distributed and scalable. Distribution also prevent unintentional copies of (valuable parts of) the system being spread.

The intended focus of this project was to build a system that could play. Building an agent for playing Texas hold'em poker competitively is a different project in itself which is why I focused on building a system that reliably could interact with poker clients. Development was focused on one specific client but the ambition was the scraper should be easy to modify (through change of parameter) to work with most clients. THAPS has a rich state representation which makes it highly robust against situations where the scraper cannot extract all the necessary information in all the steps of the game.

The final version managed to detect the state of the game robustly in most cases and successfully played a few hands for play money without interaction. Even though the system did not win more than a couple of hands I am satisfied with the result of the project in terms of robustness.