Skip to content

ishidakei/sfen2seq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sfen2seq

手順を含まない SFEN(局面のみの SFEN)を、CSA 形式の棋譜から探し出し、 局面に至るまでの手順を含む形式(手順を含む SFEN または SETBUOY)へ変換するツールである。

概要

  • 入力1: 手順を含まない SFEN(1 行 1 局面) 例: l1s1k2nl/1r1g2g2/2npppsp1/ppp3p1p/9/P1P2P1PP/1PSPPSP2/2G4R1/LN2KG1NL w Bb 24
  • 入力2: CSA 形式の棋譜(複数ファイル / ディレクトリ再帰)
  • 出力: 局面 + 手順の情報
    • 手順を含む SFEN: startpos moves 2g2f 8c8d 2f2e ...
    • SETBUOY 用の手順: +2726FU-8384FU+2625FU...(CSA 手を連結)

手順を含まない各 SFEN の末尾の手数 N を手がかりに、CSA 棋譜を初手から再生して N 手目の局面が一致する棋譜を探し、そこまでの手順を出力する。 (実装は「手順を含まない SFEN を全て HashMap に格納し、棋譜側を一度だけ走査して引く」方式)

依存

  • Rust 1.96 / Edition 2024(rust-toolchain.toml で固定)
  • SH11235/rshogirshogi-csa crate (CSA パース・CSA↔USI 変換・SFEN 出力に使用)

ビルド

cargo build --release

使い方

# ディレクトリ再帰でCSA棋譜を探し、手順を含む SFEN で出力(既定)
sfen2seq --sfen positions.txt --csa-dir csa-logs

# 標準入力からSFEN、CSAファイルを個別指定、SETBUOY 用の手順で出力
cat positions.txt | sfen2seq --csa a.csa --csa b.csa --format setbuoy

オプション

オプション 説明
--sfen <FILE> 検索対象の手順を含まない SFEN ファイル(省略時は標準入力)
--csa <FILE>... CSA 棋譜ファイル(複数可)
--csa-dir <DIR>... CSA 棋譜を再帰探索するディレクトリ(*.csa を収集)
--format <sequence|setbuoy> 出力形式(既定: sequence
--no-match-marker <STR> 不一致行の行頭マーカー(既定: # NO_MATCH
--quiet 進捗・サマリ(標準エラー出力)を抑制

出力仕様

  • 標準出力に 入力 SFEN 1 行につき 1 行 を、入力順で出力する。
    • 一致した場合: 変換結果(手順を含む SFEN / SETBUOY 行)
    • 一致しなかった場合: # NO_MATCH <元のSFEN>--no-match-marker で変更可)
  • 進捗・一致サマリは標準エラー出力へ(--quiet で抑制)。

入力 SFEN の補足

  • 空行・# で始まる行は無視する。
  • 行頭の position / sfen 接頭辞は自動で除去する。
  • 末尾の手数を省略した SFEN も受け付ける。その場合は手数を問わず (盤面・手番・手駒のみで)一致する最初の局面を採用する。

形式の用語

  • 手順を含まない SFEN: 局面のみで、そこに至る手順を含まない。1 行 1 局面。
  • 手順を含む SFEN: startpos moves ... 形式。局面 + 手順。拡張子 *.sfen。 本ツールでは行頭の position を含めず出力する。
  • SETBUOY 用の手順: shogi-server の buoy 機能で 用いる、CSA 手を連結した手順(例: +7776FU-3334FU...)。 本ツールは %%SETBUOY <game_name> ... のコマンド部や末尾の対局回数は付けず、手順のみを出力する。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages