Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Python API リファレンス

Python から rsshogi を使用するための API リファレンスです。

このリファレンスの読み方

各ページは共通の記法ルールで書かれています。

  • シグネチャは Python のコードフェンスで示します(board.to_sfen() -> str など)。
  • 型・列挙・定数が中心のページ補助型 / GameResult / Record 系 / 定跡 / NumPy 連携)は、 プロパティ・メソッドを一覧表で示します。
  • 主要な操作クラスBoard / Move / Move32)は、 メソッドごとに引数・戻り値・例外・使用例を個別に説明します。
  • 例外ポリシーは全 API 共通です。
    • 型が不正: TypeError
    • 値は型として正しいが内容が不正(不正な文字列・違法手など): ValueError
    • 履歴が空などの「未存在」: None を返す(例: last_move(), pop()
  • 各ページの末尾には関連ページへのリンク(関連項目)があります。

インストール

pip install rsshogi

AVX2 対応 x86_64 CPU 向けの高速版も利用できます(通常版とは同時にインストールできません)。迷った場合は通常版を使ってください。

pip install rsshogi-avx2

モジュール構成

rsshogi はサブモジュールで構造化されています。

モジュール主な型説明
rsshogi.coreBoard, Move32, Move, AperyMove, AperyMove32, PositionState, ValidationReport, ValidationIssue, to_move(), parse_usi_position(), parse_usi_position_parts(), normalize_usi_position()盤面、raw-state、指し手
rsshogi.typesColor, PieceType, Piece, Square, Bitboard, Hand, MoveType, RepetitionState補助型と定数
rsshogi.recordRecord, RecordMetadata, GameResultInfo, MoveEntry, EngineInfo, SpecialMoveEntry, TimeControl, GameResult棋譜の読み書き
rsshogi.bookStaticBook, MemoryBook, BookBuilder, BookKey, BookMove, BookEntry, YaneuraOuBook, SbkBook定跡データベース(内部形式・外部形式)
rsshogi.usiUsiInfo, UsiBestMove, UsiGoCommand, UsiScore, UsiBound, move_from_usi(), parse_info(), parse_bestmove()USI プロトコルの値オブジェクトとパーサ
rsshogi.policymove_label(), compact_move_label(), 変換テーブルpolicy 学習向けラベル変換
rsshogi.initial_positionsInitialPosition初期局面の SFEN 定数
rsshogi.svgSvg盤面の SVG 描画
rsshogi.numpyPackedSfen, PackedSfenValue, HuffmanCodedPos, HuffmanCodedPosAndEvalNumPy dtype 定義(要 NumPy)

インポート例

from rsshogi.core import (
    Board,
    Move32,
    Move,
    AperyMove,
    AperyMove32,
    PositionState,
    ValidationIssue,
    ValidationReport,
    to_move,
    parse_usi_position,
    normalize_usi_position,
)
from rsshogi.types import Color, PieceType, Piece, Square, Bitboard, Hand, MoveType, RepetitionState
from rsshogi.record import (
    Record,
    RecordMetadata,
    MoveEntry,
    EngineInfo,
    SpecialMoveEntry,
    TimeControl,
    GameResult,
)
from rsshogi.book import StaticBook, MemoryBook, BookBuilder, BookKey, BookMove, BookEntry
from rsshogi.book import book_key_from_position, book_key_after, book_builder_from_game_record
from rsshogi.book import YaneuraOuBook, SbkBook
from rsshogi.usi import UsiInfo, UsiBestMove, UsiGoCommand, UsiScore, UsiBound
from rsshogi.policy import (
    MOVE_LABEL_COUNT,
    COMPACT_MOVE_LABEL_COUNT,
    move_label,
    compact_move_label,
)
from rsshogi.initial_positions import InitialPosition
from rsshogi.svg import Svg
from rsshogi.numpy import (
    PackedSfen,
    PackedSfenValue,
    HuffmanCodedPos,
    HuffmanCodedPosAndEval,
)  # NumPy が必要

クラス一覧

盤面・指し手

クラス説明
Board盤面を管理するメインクラス
PositionStateBoard の raw-state を保持する編集用オブジェクト
ValidationReportvalidate_all() の全件レポート
ValidationIssue個別の validation 問題
Move3232bit 指し手型(駒情報を含む完全な表現)
Move16bit 指し手型(軽量、通常はこちらを使用)
Apery / hcpe 互換AperyMove / AperyMove32 と HCP/HCPE の互換 API

棋譜

クラス説明
Record棋譜レコード(初期局面・開始局面コメント・指し手列・メタデータ・結果)
RecordMetadata対局ヘッダ(棋戦名・対局者・日時など)
MoveEntry各指し手のデータ(コメント・消費時間・エンジン解析情報)
EngineInfoエンジン解析情報(評価値・深度・ノード数・拡張属性)
SpecialMoveEntry終局特殊手(種別・終局コメント・終局時間・raw)
TimeControl持ち時間の設定
GameResult終局結果(18 種類の終局状態)
GameResultInfo終局情報ビュー(ply_count / reason / end_time_ms / end_comment

定跡

クラス説明
MemoryBookメモリ上で編集可能な定跡
StaticBook読み取り専用の定跡ファイル
BookBuilder棋譜から定跡を構築
BookKey局面の定跡検索キー
BookMove定跡の候補手データ
BookEntry定跡の1局面分のエントリー
YaneuraOuBookDB2016 .db ファイルの外部定跡リーダ
SbkBookSBK .sbk ファイルの外部定跡リーダ

補助型

クラス説明
Color手番(BLACK / WHITE)
PieceType駒種(PAWN, LANCE, … DRAGON)
Piece駒(色付き駒種)
Squareマス目(81 マス + NONE)
Bitboardビットボード(81 ビット盤面表現)
Hand持ち駒
MoveType指し手の種類(通常 / 成り / 駒打ち)
RepetitionState千日手の状態

ユーティリティ

クラス説明
InitialPosition初期局面の SFEN 定数(平手・駒落ち)
Svg盤面の SVG 描画
NumPy 連携PackedSfen / PackedSfenValue / HCP / HCPE dtype

スタンドアロン関数

関数モジュール説明
to_move(mv)rsshogi.coreMove / Move32 / intMove に変換(int は下位16bitを使用)
parse_usi_position(position)rsshogi.coreposition ... / startpos / sfen ... moves ...Board に変換
parse_usi_position_parts(position)rsshogi.coreUSI position 文字列を UsiPositionParts(初期局面 SFEN・指し手列・最終局面 SFEN)に分解
normalize_usi_position(position)rsshogi.coreUSI position 文字列を正規化(初期局面は "startpos"
book_key_from_position(board)rsshogi.book局面から定跡キーを計算
book_key_after(board, mv)rsshogi.book1手後の定跡キーを計算(盤面を変更せずに)
book_builder_from_game_record(record, ...)rsshogi.book棋譜から定跡を一括構築
move_label(move, turn)rsshogi.policyMove / Move32 / USI を 2187 クラスへ変換
compact_move_label(move, turn)rsshogi.policy1496 クラスへ圧縮(構造的に無効なら None

対応フォーマット

フォーマットパースエクスポート説明
KIFoo柿木形式
KI2ooKIF の指し手のみ形式
CSAooCSA 標準形式
JKF-oJSON 棋譜形式(エクスポートのみ)
sbinpackooバイナリ学習データ形式
定跡バイナリoo互換定跡形式(StaticBook / MemoryBook
DB2016o(参照)-.db 外部定跡(YaneuraOuBook
SBKo(参照)-SBK .sbk 外部定跡(SbkBook
HCP / HCPEooApery / cshogi 互換の固定長学習データ

関連ドキュメント