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第三方库


热门话题
在reducer中迭代自定义可写组件时出现java问题   属性文件中属性的java命名约定   任务链关闭的java Executor服务   java从Eclipse中的字段生成多个构造函数   java通过继承读取Json   java在不知道密钥的情况下解析json   java camel cxf如何在电子邮件中发送soap请求响应   java程序似乎跳过了if语句的一部分,在移回正确位置之前先移到else语句   测试简单的Java加密/解密inputFileName不存在   java从Jenkins REST API获取所有作业的所有构建的构建细节   java基本包装器和静态“类型”类对象   在WebSphere8.5上部署java代码   java对象相等(对象引用“=”)   java MongoDB整型字段到枚举的转换   每次我重新导入gradle时,IntelliJ都会不断重置Java设置   类型使用键或索引从Java中的数据类型检索值   在Java的列表接口中需要listIterator()和iterator()是什么?