# KAbalone (アバローニ) ハンドブック

Josef
Weidendorfer
バージョン 1.04, 1999 年 9 月 9 日

この文書は kabalone バージョン 1.04 用に更新されました。御意見、 補足を著者まで送ってください。

KDE アバローニ

KDE
game
abalone
linux

## はじめに

アバローニは 2 人で遊ぶシンプルな戦略型ボード ゲームです。各 プレイヤーには赤と黄の石が渡されます。各プレイヤーは各々 14 個の 石をスタート位置に置いてゲームを開始します。どちらかのプレイヤーが 相手の石を 6 個ボードの外に押し出すまで続けられます。

プログラムの原作は 1993 年に DOS 版と Xlib のみを使用する版 が開発されました。KDE 版では大幅な書き換えが行われました。

注意: このゲームのアイディアは 私の物ではありません。ドイツのゲーム制作会社が販売する実在のボード ゲームです(だったと思います)。

## ゲームのルール

常に赤が先手です。

指し手には 2 種類あります:

- 普通の移動 一列に並んだ 1 個、2 個、 3 個の石を 6 方向のいずれかに一歩進める ことができます。平行移動も許されます。

  移動させる 1 個目の石の上でマウスの左ボタンで押さえます。 この時石の色が変わります。次に移動したい方向にマウスをドラッグ します。その手が有効ならば、カーソルが移動方向の矢印に変化し、 その手で移動する全ての石の色が変わります。その手でよければ、 マウスのボタンを離します。

  平行移動は次のように操作します。隣接する 2 個の石の中間を クリックしてドラッグします。石が 3 個の場合は中央の石の上でマウスの 中央のボタンを押します。平行移動が可能な場合はこれらの石の色が 変わります。平行移動ができない場合は中央の石だけ色が変わり、 普通の移動になります。

- 押し進める あなたの動かす石の数がその先にある相手の石の数より多い場合は、 相手の石を最大 2 個まで一緒に押し進めることができます。すなわち、 あなたが 3 個の石を動かす場合は相手の石を 1 個か 2 個、あなたが 2 個の石を動かす場合は相手の石を 1 個押すことができます。

  押し進めた時に相手の石が盤外から出てしまう場合があります。 このような手を 6 回指した時点であなたの勝利です。

まだ kabalone がどんなゲームか分かりにくい場合は、 コンピュータが一人二役でゲームするのを見るとよいでしょう。 kabalone を起動し、"オプション/コンピューター/両方" を 選択し、新しいゲームを開始してください。

## ユーザ インターフェース

手の指し方はゲームのルールで説明 しています。 ツールバーのボタンは "ファイル" / "Edit (編集)" メニュー項目と 同じ働きをします。

ファイルメニュー

- `新しいゲーム` - 新しいゲームを開始します。途中のゲームは打ち切られます。

- `思考を止める` - コンピュータの思考中に深読みを中断します。コンピュータは それまでに調べた手の中から最善の手を指します。

- `一手戻る` - あなたの以前の手を取り消します。相手の手とあなたの最後の 最後の手の 2 手 (!) が取り消されます。したがって次はまた あなたの番になります。100 手まで記憶されていますから、 ゲームの始めまで戻すこともできます (F2 キーを使うと操作が 楽です)。Modify (修正) モード (後述の Edit (編集)/ Modify (修正) メニューを参照) では、現在の局面に至るまでに 打たれたとされる手の数が減らされます。

- `Forward (進める)` - Modify (修正) モードでのみ有効です。現在の局面に至るまでに 打たれたとされる手の数が増えます。

- `ヒント` - あなたの次の手のヒントを表示します。中級以上のレベルで、 2 手目以降、かつ打った手を取り消していない時に利用できます。

- `Network (ネットワーク)` - この切り替えをオンにすると、このプログラムは Network (ネットワーク) モードになります。Network (ネットワーク) モードで実行されている アバローニ プログラムは全て、互いの盤上の変更をブロードキャスト します。この方法で 2 人の人間が別のコンピュータを使って互いに 対戦したり、他の アバローニ プログラムで行われている勝負を 観戦することができます。

  位置を伝え合うには、アバローニ プログラムはお互いに相手を 知らなければなりません。同じマシンで実行している場合には (Network (ネットワーク) モードに切り替える他に) 何もする 必要はありません。異なるコンピュータの間で実行する場合は コマンドラインで `-h` スイッチを 使って他のマシンを指定する必要があります。

  内部に詳しい方へ: アバローニ が Network (ネットワーク) モードで動作する時は、TCP ソケットをリスンして他のアバローニ プログラムが行う位置の移動を知ります。ここで使う ポート番号は `-p` コマンド ライン スイッチで指定することができます。この設定はあなたが 2 つの別のアバローニ ネットワーク対戦をする場合に 必要です。

  例:

  - machine1 にいる Chris と machine2 にいる Mary がもう一度 対戦しようとします。Mary は普通にアバローニを起動します。 "オプション/コンピューター" の設定を "None (なし)" にし、 Network (ネットワーク) モードにします。Chris はアバローニを 起動する時に `kabalone -h machine2` として、後は Mary と同じに操作します。これで 2 人のどちらかが 赤を動かしてゲームを開始することができます。一方のプログラムで 位置が変わると、相手のプログラムの上でも自動的に変わります。

  - John が対戦を観戦しようとします。彼は Chris と同じ操作を 行いますが、自分では手を指しません。

  - 2 つの別のアバローニ ネットワーク対戦をマシン `m1` と `m2` の間で実行することができます。 2 つのゲームを区別するために、片方のゲームで使用するポート 番号に 12345 を選びます。`m1` では 1 つは普通に `kabalone`、 (もう 1 つは普通と変えて) `kabalone -p 12345` でプログラムを起動します。`m2` では `kabalone -h m1`、 `kabalone -h m1:12345` (この点は URL と同様、ホストとポートを区切ります) でプログラムを起動します。

- `終了` ゲームを終了します。

Edit (編集) メニュー

- `Modify (修正)` - アバローニを Modify (修正) モードに切り替えます。ここでは現状の 盤面を、石の追加、削除によって編集することができます。ステータス ラインには赤と黄の石の数、手数、次の番、盤面の有効性 (感嘆符なら 無効、チェック記号なら有効)が表示されます。盤面が無効だと通常の Play (プレイ) モードに戻した時、ゲームができません! 有効な盤面 のみがゲームの開始局面に使用できます。注意: Network (ネットワーク) モードでは、Play (プレイ) モードに戻す時盤面がブロードキャスト されます。 `一手戻る` と `Forward (進める)` は手数を減少あるいは増加させるだけで、 石には触れません。

  使い方: 空または黄の場所で マウスの左または右ボタンを押さえると "赤の石を追加" モードに なります。空か赤の場所でマウスの中央ボタンを押さえると "黄の石を追加" モードになります。そして赤の石の上でマウスの 左または右ボタンを押さえるか、黄の石の上でマウスの中央ボタンを 押さえると "石の削除" モードになります。マウスのボタンを 押さえている間は、マウスを移動させると、その指している場所が操作 されることになります。マウスのボタンを離すと修正の手順が終ります。

- `Copy (コピー)`

  現状の盤面の ASCII 表現を X クリップボードにコピーします。コピー したデータは、任意のテキスト エディタの中でマウスの中央ボタンを 押して貼り付けることができます。

- `Paste (貼り付け)`

  X クリップボードの内容をアバローニの盤面の ASCII 表現として解釈し それに合わせて盤面をセットします。有効な ASCII 表現は `Copy (コピー)` で生成されます。

  これを使って、2 つのアバローニ プログラムの間の盤面の交換が できます。片方のプログラムで `Copy (コピー)` をし、もう 1 つのプログラムで `Paste (貼り付け)` を行います。ただし Network (ネットワーク) モード (前述) を使った方が優れています。他の用法としては、 テキスト ファイルに保存して (`Copy (コピー)` で好きなエディタを使います)、後でそのファイルを テキスト エディタで選択してアバローニ プログラムに `Paste (貼り付け)` することで 盤面を回復することができます。

- `位置を保存` - 現状の盤面を保存し、後で `位置を修復` メニューで呼び戻すことができます。盤面は アバローニ設定ファイルに格納されます。

オプション メニュー

- `レベル` - コンピュータは 4 種類のレベルで対戦することができます。これは 最善手を計算するための先読み探索の深さに関係します。S キーを 押すと探索を中止させることができます。

- `コンピュータ` - コンピュータに赤、黄、あるいは両方の役をさせることができます。 これらのオプションはゲームを開始する前に選択します。しかし、 陣地を交替するなら、ゲームの途中でももちろん有効です。 他の人と対戦する時には "None (なし)" を選択します。これは ネットワーク モードで非常に役に立ちます。

- `ゆっくり` - コンピュータの指す手は普通(このオプションがチェックされている時)、 移動に使う石を点滅させて色を変えて示されます。このアニメーション が待ち切れないなら、このオプションを外してください。このときは、 色を素早く変化させるだけです。

- `Render balls (石の絵の計算)` - チェックされていると、必要な時 (例えばウィンドウのサイズを変えた 時) 内蔵のレイトレーサを使ってオンラインで石をレンダリングします。

- `スパイ` - "スパイ" オプションがチェックされていると: あなたの番の時には、 あなたの指そうとする手のコンピュータによる評価がステータス バーに 表示されます。コンピュータの番の時には、(ステータス バーと石の色 の変化で) コンピュータが最善と考えている手を見ることができます。 もちろんこれはコンピュータの探索に伴い変化します。

- `保存` - オプションをアプリケーションの設定ファイルに保存します。オプション は kabalone の起動時に復元されます。

## コマンド ライン オプション

`kabalone [-p ローカルポート] [-h ホスト[:ポート]]*`

`-p` を使って、Network (ネットワーク) モードでリスンする TCP ソケットの ポート番号を指定します。

`-h` を使って、Network (ネットワーク) モードで通信相手になるリモートのアバローニ プロセスを指定します (省略可能なポート番号は、リモートの マシンがデフォルトのポートを使用していない時に指定します)。 複数のリモート プロセスを指定することができます。

## 終章

### 開発

`Josef Weidendorfer`

### 執筆

`Josef Weidendorfer`

`Robert Williams` - 編集

### 著作権

kabalone は GPL ライセンスに基づいて公開されています。