参考資料
rsshogi が互換性の基準として参照している外部実装、フォーマット仕様書、および将棋プログラミングの技術資料をまとめる。
参照実装と関連プロジェクト
- YaneuraOu(やねうら王):https://github.com/yaneurao/YaneuraOu
rsshogiがMove(16-bit)のビット配置、PackedSfen、DB2016/YBB定跡、PACK 形式などの互換対象として参照する USI 将棋エンジン。 - Stockfish:https://github.com/official-stockfish/Stockfish
StateInfoによる差分状態管理やビットボード演算など、探索エンジン基盤の設計における参考実装。 - Chess Programming Wiki:https://www.chessprogramming.org/ ビットボード、Zobrist ハッシング、段階的指し手生成などのアルゴリズム解説。
やねうら王開発ブログ(技術記事)
- 将棋の完全ハッシュは何bitで表現できますか?:局面圧縮の理論的下限に関する考察。
- 将棋の局面を256bitに圧縮するには?:
PackedSfenおよびHuffmanCodedPosの 256-bit 符号化方式。 - SFEN文字列は一意に定まらない件 / SFEN文字列は本来は一意に定まる件:SFEN における持ち駒の正規化順序。
- 256手ルールの実装を間違えていた話:最大手数引き分け判定と
game_plyの境界条件。
棋譜とプロトコルの仕様書
- CSA 標準棋譜ファイル形式(V2.2):https://www.computer-shogi.org/protocol/record_v22.html
- JSON Kifu Format(JKF):https://github.com/na2hiro/Kifu-for-JS
- 将棋の各種フォーマットについて(Qiita):https://qiita.com/sunfish-shogi/items/964e139ef3bfd8f738d4
- コンピュータ将棋協会(CSA):https://www.computer-shogi.org/