チェスプロブレムを解析する(popeye、olive)

なんか需要があるらしいのでやりながら書くよ。2024年8月にやったよ。口調がアレなのはほら、こういう文体があるんだよ。あんまり不評なら修正するよ。このドキュメントは著作権を主張しないよ。好きにしてね。

popeye、oliveって何?

popeyeがソルバーだよ。チェスプロブレムを解析してくれるエンジンだよ。詰将棋で言うfmzaにあたるよ。チェスのほうはそもそも伝統ルールとフェアリーがほとんど区分けされてないよ。でもpopeyeはエンジンに集中しているから操作まわりはちょっとばかり不親切なんだ。

それを解決してくれるのがoliveだよ。人間にわかりやすい操作で盤面やルールを設定して、popeyeに解いてもらうことができるよ。

インストール

それぞれgithubってプログラムの中身も公開してくれるサイトにあるよ。でも、oliveのバイナリにはpopeyeが同梱されているよ。

popeyeのgithub(こっちはパスしていい)
oliveのgithub

実行するファイルは右側にあるReleasesってとこにあるよ。

最新バージョンを入れればいいと思う。私はOlive1.5.3をダウンロードしたよ。

こんな警告が出たよ。作者を信頼しても良いな、ってひとは「・・・」をクリックして保存してね。スクショがpywinなのは最初popeyeもダウンロードしちゃったからさ!

ファイル名は違うけど詳細から「保持する」だよ。olive-x.x.x-amd64だよ。インテルじゃないの? って思うかもしんないけど大丈夫。

インストーラなので、起動してインストールしてね。で、実行するとこうなるよ。

解いてもらおう!

んー、例題なんにしようかな。wikipediaから借りよう。#3ね。

盤面をクリックすると下に駒が出てくるから、感覚で配置してね。デフォルトのフェアリーピースはlocustなんだ。へええ。

配置したら#3だって教えるよ。ルールは右側のsitipulationだ。ここを#3にするよ。

じゃあpopeyeの出番だ。popeyeにお願いするよ。

あっさり終わったね、きょうから君もpopeye使いだ!

ざっくりもうちょっと教えて!

ダイレクト、ヘルプ、ヘルプセルフ、セルフはsitipulationね。手数が長いとかは手打ちできるよ。

フェアリー条件は歯車のoption and conditionsから。いーーっぱいあるよ。アルファベット順になってるからがんばえー。ポーンがわらわら生えてくるsentinellesとか、Kをノーマルのチェックメイトじゃない状況を逆にメイトとするへんたいさんルールのSATとかいろいろあるので調べるだけでもたのしいよ。

フェアリーピースはFairy枠を右クリックすると色々出てくるよ。どれがどのピースかはマウスを上に持っていってね。メニューにないトンチキなピースもAdd pieceからある程度作れるよ。通常駒のn駒もここから足すんだと思うけど、もっと楽な方法があるかもしんない。金将とかは無理じゃないかなー。

わかんないこと

詳しい人キーワードだけでも教えてくれると助かるな。コメント待ってるね。Xでもいいよ。

  • プルーフゲームやエンドゲームはできるかどうかもわかんないや。
  • 図面と結果がまとまったデータは”YAML” “RTF” “LaTeX”にあるんだけど、手順再生は外部ツールになるのかな。なんのツールがいいのかはぜんぜんわかんない。
  • その他くわしくしたいとこがあったら教えてね。