|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Rlcard||2,260||2||3 months ago||40||April 19, 2023||56||mit||Python|
|Reinforcement Learning / AI Bots in Card (Poker) Games - Blackjack, Leduc, Texas, DouDizhu, Mahjong, UNO.|
|A bot that deals Texas Hold'em games in Slack|
|Poker_ai||942||6 months ago||3||July 05, 2020||51||other||Python|
|🤖 An Open Source Texas Hold'em AI|
|:fire: An online poker game server powered by Redis, node.js and socket.io|
|Deepstack Leduc||596||6 years ago||13||Lua|
|Example implementation of the DeepStack algorithm for no-limit Leduc poker|
|Casinosclient||346||3 months ago||8||mit||C#|
|Pypokerengine||320||6||1||5 years ago||16||April 02, 2017||12||mit||Python|
|Poker engine for poker AI development in Python|
|Poker Maison||302||2 years ago||n,ull||Haskell|
|🂺 A Multiplayer Poker App Crafted with Haskell and React|
|Pycfr||203||9 years ago||2||Python|
|A python implementation of Counterfactual Regret Minimization for poker|
DeepStack is an artificial intelligence agent designed by a joint team from the University of Alberta, Charles University, and Czech Technical University. In a study completed in December 2016, DeepStack became the first program to beat human professionals in the game of heads-up (two player) no-limit Texas hold'em, a commonly played poker game.
This project reimplements DeepStack as a player for heads-up no-limit Leduc holdem, a much simpler game than Texas hold'em.
DeepStack is built around two components:
The strategy played by DeepStack approximates a Nash Equilibrium, with an approximation error that depends on the error of the neural net and the solution error of the solver used in continuous re-solving.
Running any of the DeepStack code requires Lua and torch. Torch is only officially supported for *NIX based systems (i.e. Linux and Mac OS X), and as such, we don't officially support installation of DeepStack on Windows systems. This page contains suggestions for using torch on a Windows machine; if you decide to try this, we cannot offer any help.
Connecting DeepStack to a server requires the luasocket
package. This can be installed with luarocks (which is
installed as part of the standard torch distribution) using the command
luarocks install luasocket. Visualising the trees produced by DeepStack
requires the graphviz package, which can be installed
luarocks install graphviz. Running the code on the GPU requires
cutorch. Currently only version 1.0 is supported which can be installed with
luarocks install cutorch 1.0-0.
The DeepStack player uses the protocol of the Annual Computer Poker Competition
(a description of the protocol can be found here)
to receive poker states and send poker actions as messages over a network
socket connection. If you wish to play against DeepStack, you will need a
server for DeepStack to connect to that acts as the dealer for the game; code
for a server that fills this role is available through the ACPC
For convenience, we include a copy of the ACPC dealer in the
directory, along with a game definition file (
ACPCDealer/leduc.game) so that
the dealer can play Leduc hold'em.
If you would like to personally play against DeepStack, you will need a way of interacting with the server yourself; one such option is the ACPC GUI available from Dustin Morrill here.
Leduc Hold'em is a toy poker game sometimes used in academic research (first introduced in Bayes' Bluff: Opponent Modeling in Poker). It is played with a deck of six cards, comprising two suits of three ranks each (often the king, queen, and jack - in our implementation, the ace, king, and queen). The game begins with each player being dealt one card privately, followed by a betting round. Then, another card is dealt faceup as a community (or board) card, and there is another betting round. Finally, the players reveal their private cards. If one player's private card is the same rank as the board card, he or she wins the game; otherwise, the player whose private card has the higher rank wins.
The game that we implement is No-Limit Leduc Hold'em, meaning that whenever a player makes a bet, he or she may wager any amount of chips up to a maximum of that player's remaining stack. There is also no limit on the number of bets and raises that can be made in each betting round.
The documentation for code files was automatically generated with LDoc,
which can be installed with
luarocks install ldoc. To re-generate the docs,
ldoc . in the
doc/ directory. If you wish to also generate
documentation for local functions, run
ldoc . -all instead.