OpenAI健身房2人零和棋盘游戏扩展。

boardgame2的Python项目详细描述


棋盘游戏2

boardgame2是openai健身房的一个扩展,它实现了多个两人零和二维棋盘游戏,如tictactoe、gomuko和reversi。

环境

  • Reversi-v0
  • KInARow-v0,以及Gomuku-v0TicTacToe-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-v0TicTacToe-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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
来自查询JPA的java更新   java堆排序堆方法不工作?   java程序执行步骤   针对Mac的eclipse Java网络安全服务(Mozilla JSS)未满足LinkError   java使用if语句和JDBC条件更新数据库   数据结构Java编程问题,逻辑问题   java如何缩放Android桌面布局   java线程中断不会被InterruptedException捕获   设置超时以在java实现类中使用web服务   java中的C++ OpenCV PTR   java编译器不取消lambda参数int的装箱   jna调用方法的JAVA方法   在Android Edittext中将数字设置为下标时,java在PostTextChanged中获取ANR   java创建死信队列   java是否可以自定义JTree节点?   java如何仅在运行junit时从项目类路径中删除依赖项?   java如何从google活动中获取配置文件名并在其他活动布局中显示   ActionBar中的java NullPointerException。设置HomeButtonEnabled