UpperHand ゲーム 公開

UpperHand ゲーム を公開しました。

UpperHand は囲碁に似た雰囲気の陣取りゲームです。学生時代に研究室で実物のゲームが流行り、Pascalで実装したのが最初です。次にWeb黎明期に Java Applet で実装 しました*1。Java Applet 版が動作しなくなって久しいので、今回 JavaScript で書き直した次第です。今回の修正で5路盤以外でも遊べるよう改良しました。

ルール

  1. 先手は 白玉、後手は 青玉 を27個ずつもっています(5路盤の場合)。
  2. 初期状態では中立の玉 水色 が盤中央に置かれています。
  3. プレイヤーは交互に自分の玉を盤上に置いていきます。玉を置くことができるのは、5×5の盤上か、4つの玉で作られる正方形の中央のいずれかです。
    盤上正方形の中央
  4. 玉を置いたとき、その玉を含む4つの玉で新たに正方形ができて、4つの玉のうちどちらかのプレイヤーの玉が3つ以上あるときには、その上にそのプレイヤーの玉がボーナスとして置かれます。ボーナス玉によってさらに正方形ができた場合には、同様にボーナスの判定を行います。手番はすべてのボーナス玉を置き終えたときに完了します。
    ボーナス
  5. 先に自分の玉を使い切ったプレイヤーが勝者となります。同時に使い終えたとき(盤上にピラミッドが完成したとき)は引分けです。

AIの強さ

機械学習は採用せず、単純な評価関数*2とその値が最大となることを目指す先読み(min-max法・α-β法)を行っています。

初心者
評価関数は使わず、あらかじめ決められた着手の優先順位にしたがいます。
初級者
着手後に評価関数の値が最大となる手を選択します。
中級者
2手先読みを行い、評価関数の値が最大となる手を選択します。
上級者
3手以上先読みを行います。最終盤(残り7手くらいから)は完全読み切りします。

プログラム

プログラムは以下で公開しています。

関連情報

UpperHand - アブストラクトゲーム博物館
UpperHandに関する様々な情報があります。拙作Java Applet版も紹介されてます。
MOSAICボードゲーム
7路盤のUpperHandが「モザイク」として商品化されています。*3
「ラプラス」誕生秘話
米誌でUpperHandを発見してからモザイクに発展するまでの経緯が書かれていて興味深いです。

*1:2020年頃まではこれで遊んでくれる人がいたようです

*2:bit誌の『ナノピコ教室』で紹介されていた関数を使用しています

*3:モザイクでは待ちコマの数が先手後手共に70(引き分けがない)ですが、先手有利なゲームなので当サイトでは先手70、後手69としています