# 章 3. ユーザ インターフェース

手の指し方はゲームのルールで説明 しています。 ツールバーのボタンは "ファイル" / "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 の起動時に復元されます。