blog post about SEPARO in English
Separoは@gfngfn氏によって考案された2人対戦用ボードゲームです。 ルールの詳細は、@gfngfn氏の個人ウェブページ佛陀ヶ谷で配布されています。
Separo-rsは、Separoをプレイするソフトウェアと、Webインターフェースを提供します。 ソフトウェアと対局できるほか、ソフトウェア同士の対局を見守ったり、人間が交互にプレイすることも可能です。
実装しているアルゴリズムは以下の通りです。Random以外は1秒間探索を行います。
- Random
- 可能な手から一様乱数で手を選びます。最弱です。
- Naive MC
- 原始モンテカルロアルゴリズムです。可能な手からランダムプレイアウトを行い、勝率が最大の手を選択します。
- Brügmann, Bernd (1993)
- UCT MC
- 信頼上限(UCB1)スコアを用いたモンテカルロ木探索アルゴリズムです。
- Kocsis, Levente; Szepesvári, Csaba (2006)
このレポジトリは、rustwasm/rust-webpack-templateをもとに作成されています。
- https://toruniina.github.io/separo-rs/ をクリックします。
- Human VS Random となるようにプルダウンメニューを設定します。あとはデフォルトのまま Start ボタンをクリックします。
- 盤面の赤丸をクリック状態を継続して掴み、動かせるところ(点線の丸のガイドが表示されます)までひっぱりクリック状態を解除します。
- 3.を繰り返します。
- 4.が行えなくなった時点で勝敗が決定しています。Start ボタンの2行下に勝敗情報が表示されています。
- Rust
- wasm-pack
static/js/以下にwasmと幾つかのファイルが生成されます。
$ wasm-pack build --target web --out-dir static/js
ページを確認する際はstatic/以下でHTTPサーバーを立ててください。 簡易なHTTPサーバーとしてはhttpsがあります。
$ cd static && http
- JSのベストプラクティスに詳しくないので、万一、CPU使用率が上がりすぎたり、メモリを食い尽くして落ちたりしても責任は取りません。
- 数回の対局を除き、デバッグをほぼしていないので、プレイ中に落ちるかも知れません。
- その場合Issue報告を上げてくれると嬉しいです。
MIT.