著者:関 勝寿
公開日:2025年8月22日
キーワード: game javascript

このページではドッジェムの遊び方を説明します。

ルール

n×n の盤面に、左端の列に青の駒を n−1 個、最下段に赤の駒を n−1 個並べます。下図は n=4 の例です。

  • 手番は青が先手、赤が後手で、交互に1手ずつ指します。
  • 青の駒の前進方向は右です。1マス右へ進むか、上下に1マスの横移動ができます。
  • 赤の駒の前進方向は上です。1マス上へ進むか、左右に1マスの横移動ができます。
  • 駒は空いているマスにのみ移動できます。ジャンプ・取り・重ね置きはできません。
  • 駒が出口の縁(青: 右端列、赤: 最上段)に到達したら、次の手で盤外に取り除けます。
  • 相手の動きを完全に妨害してはなりません。言い換えると、自分の手番に合法手がないときは自分の勝ちです。
  • 自分の駒をすべて取り除いたプレイヤーが勝者です。
  • 同一局面が3回出現した場合は引き分けです。

操作方法

  • 動かしたい駒をクリック/タップし、行き先を選びます。
  • 同じ駒をダブルクリック(ダブルタップ)すると、取り除ける状態であれば取り除きます。
  • 盤サイズ、先後、コンピュータの強さ(レベル1〜3)を選び、「ゲーム開始」ボタンで新しい対局を開始します。
  • 「観戦」を選ぶとコンピュータ同士で対局します。再生速度を選べ、100 を選ぶと 100 局を連続で実行します。対局中でも速度変更や停止が可能です。
  • 同じ設定で連続対局すると勝敗が記録されます。ページの再読み込みや中断で記録はリセットされます。

盤サイズ別の戦略

  • 3×3は先手必勝、4×4と5×5は完全プレイでは引き分けであることが知られています。
  • まずは3×3で、先手として安定してコンピュータに勝てるよう目指しましょう。
  • 4×4と5×5では、完全プレイ相手に勝つことはできませんが、レベル1と2なら十分勝機があります。先手の方が勝ちやすいので、先手での勝利、後手では引き分けを目標にしましょう。
  • 4×4のレベル3ではコンピュータに勝つのは極めて難しいので、引き分け確保に専念してください。コンピュータが必勝を検出すると通知が表示されます。これらの局面を研究してからレベル1・2に戻ると、勝率が上がります。
  • 5×5のレベル3ではコンピュータは強いものの完全プレイには程遠いので、勝てる見込みが十分あります。先手では勝ちを狙いましょう。
  • 4×4以上で人間同士が対戦する場合は、公平な方式として、チェスの選手権と同様に「先後交代で同数回対戦する」形式がおすすめです。

このプログラムについて

  • このオンライン版は JavaScript で書かれています。ソースコード。実行には pako を読み込みます。
  • ほぼ完全解析の Python プログラムにより、MongoDB上でオフライン計算された局面評価データベースの一部を、圧縮された「evalmap」として読み込みます。オンライン版はMongoDBを使わないためCPUレベル1~3のみ対応で、MongoDBを利用するレベル4はローカルのCLI/GUI版で利用可能です。各レベルの強さはPythonプログラムで検証済みです。

参考文献

  • Berlekamp, Elwyn R.; Conway, John Horton; Guy, Richard K. (2003), “Dodgem,” Winning Ways for your Mathematical Plays, vol. 3 (2nd ed.), A.K. Peters, pp. 749–750, ISBN 978-1-56881-143-7.
  • rec.games.abstract のディスカッションスレッド (1996)。David desJardins による 4×4 と 5×5 の勝敗表が掲載され、いずれも引き分けと結論づけられています。
  • Wikipedia: Dodgem