sunfish-shogi / shogihome

PC で動く高機能な将棋の GUI「ShogiHome」の開発リポジトリ
https://sunfish-shogi.github.io/shogihome/
MIT License
136 stars 21 forks source link

SFENコピー・ペースト機能 #17

Closed sunfish-shogi closed 2 years ago

sunfish-shogi commented 2 years ago

SFEN での局面コピー・ペーストに対応する。

将棋所はプレフィクス sfen を付けないが、 ShogiGUI は付けている。 どちらもペーストはプレフィクスがあっても無くても読み込むことができる。

USI のデバッグ等を考えると、シンプルな SFEN だけでなく USI の position コマンドで棋譜をペーストできた方が良いかもしれない。 なお、将棋所の棋譜コピーには SFEN の選択肢があり、これを使うと USI の position コマンドがコピーされる。

sunfish-shogi commented 2 years ago

ShogiGUI で USI 形式のコピーをすると、投了も resign という指し手の 1 つとして含まれる。 一方で、将棋所では特殊な指し手は含めていないようである。

なお、 resign が含まれたものを将棋所に貼り付けると、 resign を読み捨てて直前の指し手までが入力されているように見える。

http://shogidokoro.starfree.jp/usi.html を読む限り、 resign はあくまでも USI のコマンド引数であり、 SFEN の指し手として定義しているようには見えない。

ひとまず将棋所と同じように読み捨てることにする。

sunfish-shogi commented 2 years ago

将棋所も ShogiGUI もコピーしたときには position で始まる USI コマンドに相当する文字列を作るのだが、貼付けについては position が有ってもなくても読み込むことができる。

更に、開始局面もなくして moves で始まると ShogiGUI は読み込んだが将棋所は駄目だった。

形式 将棋所 ShogiGUI
position 始まり YES YES
startpos/sfen 始まり YES YES
moves 始まり NO YES
指し手のみ NO NO