Gym Chess is an environment for reinforcement learning with the OpenAI gym module.
-
Install OpenAI Gym and its dependencies.
pip install gym
-
Download and install
chess_gym
:
git clone https://github.com/Ryan-Rudes/chess-gym.git
cd chess-gym
python setup.py install
Or, you can usepip
(you may view the package here):
pip install chess-gym --upgrade
You can use the standard Chess-v0
environment as so:
import gym
import chess_gym
env = gym.make("Chess-v0")
env.reset()
terminal = False
while not terminal:
action = env.action_space.sample()
observation, reward, terminal, info = env.step(action)
env.render()
env.close()
There is also an environment for the Chess960 variant; its identifier is Chess960-v0
This environment will return 0 reward until the game has reached a terminal state. In the case of a draw, it will still return 0 reward. Otherwise, the reward will be either 1 or -1, depending upon the winning player.
observation, reward, terminal, info = env.step(action)
Here, info
will be a dictionary containing the following information pertaining to the board configuration and game state:
turn
: The side to move (chess.WHITE
orchess.BLACK
).castling_rights
: Bitmask of the rooks with castling rights.fullmove_number
: Counts move pairs. Starts at 1 and is incremented after every move of the black side.halfmove_clock
: The number of half-moves since the last capture or pawn move.promoted
: A bitmask of pieces that have been promoted.ep_square
: The potential en passant square on the third or sixth rank orNone
.