OpenAI健身房2人零和棋盘游戏扩展。
boardgame2的Python项目详细描述
棋盘游戏2
boardgame2
是openai健身房的一个扩展,它实现了多个两人零和二维棋盘游戏,如tictactoe、gomuko和reversi。
环境
Reversi-v0
KInARow-v0
,以及Gomuku-v0
和TicTacToe-v0
Go-v0
(实验性)
安装
pip install --upgrade boardgame2
用法
创建游戏
import gym
import boardgame2
env = gym.make('TicTacToe-v0')
env = gym.make('Gomuku-v0')
env = gym.make('KInARow-v0', board_shape=5, target_length=4)
env = gym.make('KInARow-v0', board_shape=(3, 5), target_length=4)
env = gym.make('Reversi-v0')
env = gym.make('Reversi-v0', board_shape=6)
env = gym.make('Go-v0')
玩游戏
import gym
import boardgame2
env = gym.make('TicTacToe-v0')
print('observation space = {}'.format(env.observation_space))
print('action space = {}'.format(env.action_space))
observation = env.reset()
while True:
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
if done:
break
env.close()
API常数
boardgame2.黑色
第一个球员。
boardgame2.白色
第二个玩家。
boardgame2.空
两个选手都没有。
功能
boardgame2.strfboard
strfboard(board:np.array, render_characters:str='+ox', end:str='\n') -> str
将电路板格式化为字符串
boardgame2.is_index
is_index(board:np.array, location:np.array) -> bool
检查某个位置是否为板的有效索引
boardgame2.扩展板
extend_board(board:np.array)
把板子旋转一下。仅对方形板有效
课程
boardgame2.BoardGameEnv
全棋盘游戏环境的基类。
__init__(board_shape, illegal_action_mode:str='resign', render_characters:str='+ox', allow_pass:bool=True) -> boardgame2.BoardGameEnv
构造器。
电路板形状可以是int
或(int, int)
。
seed(seed=None) -> NoneType
见gym.Env.seed()
reset() -> tuple
见gym.Env.reset()
。
观察的形式是(np.array, int)
step(action:np.array) -> tuple, float, bool, dict
见gym.Env.step()
render(mode:str='human')
见gym.Env.render()
。
is_valid(state:tuple, action:np.array) -> bool
检查操作是否对当前状态有效。
get_valid(state:tuple) -> np.array
获取当前状态的所有有效位置。
has_valid(state:tuple) -> bool
检查是否有当前状态的有效位置
get_winner(state:tuple)
检查游戏是否结束如果是,谁是赢家。
get_next_state(state:tuple, action:np.array) -> tuple
得到下一个州。
next_step(state:tuple, action:np.array) -> tuple, float, bool, dict
获取下一个观察、奖励、完成和信息。类似于gym.Env.step()
。
PASS
打算跳过,作为一个预定义的常量动作。
RESIGN
打算辞职,作为一个预先确定的持续行动
boardgame2.kinarowenv(注册为KInARow-v0
,以及Gomuku-v0
和TicTacToe-v0
)
__init__(board_shape, target_length:int=3, illegal_action_mode:str='pass', render_characters:str='+ox') -> boardgame2.KInARowEnv
boardgame2.reversienv(注册为Reversi-v0
)
__init__(board_shape, render_characters:str='+ox') -> boardgame2.ReversiEnv
boardgame2.goenv(注册为Go-v0
,未完全实现)
__init__(board_shape, komi:float=0., allow_suicide:bool=False, illegal_action_mode:str='pass', render_characters:str='+ox') -> boardgame2.GoEnv