徒然

思いついたら書きます

マンカラのシミュレーターを作ってみた

はじめに

QuizKnockの動画に触発され、鶴崎さんが作っていたWeb上で遊べるマンカラシミュレーターを自分も作ってみたという記事です。

遊び方

ここで遊べます。

strangerxxxx.github.io

ルール

QuizKnock動画内のルールに準拠しています。(ベーシックと呼ばれるものの3×2版)

www.youtube.com

  • マスは3個×2列とゴールが左右に1つずつ
  • 石が両陣のマスそれぞれに3つずつ置かれている
  • 手番の人は石がある自陣のマスを1つ選ぶ
  • 選んだマスから石をすべて取り除き、次のマスから反時計回りに石を1つずつ置いていく
  • 最後に石を置いたマスが左右のゴールであれば手番継続、そうでなければ交代
  • 先に自陣の石がなくなったほうが勝ち

解析方法について

大まかな仕組みとしては先駆者の鶴崎さんが解説している動画があるのでぜひ見てください。

www.youtube.com

なお動画はミニマックス法の説明になっていますが、実際は全探索できる盤面の数しか存在しないので深さ優先探索しています。
具体的なコードはmancala.cppにあります。

鶴崎さんのシミュレーターとここが違う

  • 勝つ(負ける)までの手数がわかる
    なお手番が渡らない場合は1手にカウントしていません(最終手を除く)

  • 初期の石の数を1~6個に変更できる

  • 評価値と最善手を隠すことができる

その他

html/CSS/JavaScriptは初心者なので正確に動く保証はできません。
バグや気になることを見つけた方はこの記事にコメントいただく、GitHubにPRいただく、@srn@misskey.ioに指摘いただくなどお願いします。

最後に

マンカラシミュレーターで必勝法を覚えてライバルに勝とう!
あとじゃんけんの練習もしよう