RLCard is a toolkit for Reinforcement Learning (RL) in card games. It supports multiple card environments with easy-to-use interfaces. The goal of RLCard is to bridge reinforcement learning and imperfect information games, and push forward the research of reinforcement learning in domains with multiple agents, large state and action space, and sparse reward. RLCard is developed by DATA Lab at Texas A&M University.


Make sure that you have Python 3.5+ and pip installed. We recommend installing rlcard with pip as follow:

git clone https://github.com/datamllab/rlcard.git
cd rlcard
pip install -e .

Or you can directly install the package with

pip install rlcard


Please refer to examples/. A short example is as below.

import rlcard
from rlcard.agents.random_agent import RandomAgent

env = rlcard.make('blackjack')

trajectories, payoffs = env.run()

We also recommend the following toy examples.


Run examples/leduc_holdem_human.py to play with the pre-trained Leduc Hold'em model:

>> Leduc Hold'em pre-trained model

>> Start a new game!
>> Agent 1 chooses raise

=============== Community Card ===============
===============   Your Hand    ===============
│J        │
│         │
│         │
│    ♥    │
│         │
│         │
│        J│
===============     Chips      ===============
Yours:   +
Agent 1: +++
=========== Actions You Can Choose ===========
0: call, 1: raise, 2: fold

>> You choose action (integer):


Please refer to the Documents for general introductions. API documents are available at our website.

Available Environments

We provide a complexity estimation for the games on several aspects. InfoSet Number: the number of information sets; Avg. InfoSet Size: the average number of states in a single information set; Action Size: the size of the action space. Name: the name that should be passed to env.make to create the game environment.

Game InfoSet Number Avg. InfoSet Size Action Size Name Status
Blackjack (wiki, baike) 10^3 10^1 10^0 blackjack Available
Leduc Hold’em 10^2 10^2 10^0 leduc-holdem Available
Limit Texas Hold'em (wiki, baike) 10^14 10^3 10^0 limit-holdem Available
Dou Dizhu (wiki, baike) 10^53 ~ 10^83 10^23 10^4 doudizhu Available
Mahjong (wiki, baike) 10^121 10^48 10^2 mahjong Available
No-limit Texas Hold'em (wiki, baike) 10^162 10^3 10^4 no-limit-holdem Available
UNO (wiki, baike) 10^163 10^10 10^1 uno Available
Sheng Ji (wiki, baike) 10^157 ~ 10^165 10^61 10^11 - Developing


The perfomance is measured by winning rates through tournaments. Example outputs are as follows:
Learning Curves

Cite this work

  title={RLCard: A Toolkit for Reinforcement Learning in Card Games},
  author={Zha, Daochen and Lai, Kwei-Herng and Cao, Yuanpu and Huang, Songyi and Wei, Ruzhe and Guo, Junyu and Hu, Xia},
  journal={arXiv preprint arXiv:1910.04376},