Skip to content

An implementation of SEPARO, a board game, with Monte Carlo Tree Search algorithm in Rust/wasm.

License

Notifications You must be signed in to change notification settings

ToruNiina/separo-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Separo-rs

blog post about SEPARO in English

Separoは@gfngfn氏によって考案された2人対戦用ボードゲームです。 ルールの詳細は、@gfngfn氏の個人ウェブページ佛陀ヶ谷で配布されています。

終局図1

Separo-rsは、Separoをプレイするソフトウェアと、Webインターフェースを提供します。 ソフトウェアと対局できるほか、ソフトウェア同士の対局を見守ったり、人間が交互にプレイすることも可能です。

実装しているアルゴリズムは以下の通りです。Random以外は1秒間探索を行います。

  • Random
    • 可能な手から一様乱数で手を選びます。最弱です。
  • Naive MC
    • 原始モンテカルロアルゴリズムです。可能な手からランダムプレイアウトを行い、勝率が最大の手を選択します。
    • Brügmann, Bernd (1993)
  • UCT MC

このレポジトリは、rustwasm/rust-webpack-templateをもとに作成されています。

Quick Start

  1. https://toruniina.github.io/separo-rs/ をクリックします。
  2. Human VS Random となるようにプルダウンメニューを設定します。あとはデフォルトのまま Start ボタンをクリックします。
  3. 盤面の赤丸をクリック状態を継続して掴み、動かせるところ(点線の丸のガイドが表示されます)までひっぱりクリック状態を解除します。
  4. 3.を繰り返します。
  5. 4.が行えなくなった時点で勝敗が決定しています。Start ボタンの2行下に勝敗情報が表示されています。

Build

Prerequisites

How to build and run locally

static/js/以下にwasmと幾つかのファイルが生成されます。

$ wasm-pack build --target web --out-dir static/js

ページを確認する際はstatic/以下でHTTPサーバーを立ててください。 簡易なHTTPサーバーとしてはhttpsがあります。

$ cd static && http

Disclaimer

  • JSのベストプラクティスに詳しくないので、万一、CPU使用率が上がりすぎたり、メモリを食い尽くして落ちたりしても責任は取りません。
  • 数回の対局を除き、デバッグをほぼしていないので、プレイ中に落ちるかも知れません。
    • その場合Issue報告を上げてくれると嬉しいです。

Licensing terms

MIT.