解説:players/turn-order

  • (players <player>...<player>)
 プレーヤーの名前を定義します。
 プレイヤーの人数分だけ、プレーヤー名を並べます。

 定義されたプレイヤー名は、ZRF内で使用できます。
(ターンの順序の指定や、ゾーンの適用されるサイドの指定などで使用されます)

 中立プレイヤー(手番を持たないプレイヤー)も、他のプレイヤーと一緒に定義します。
 ランダムプレイヤー(ランダムに移動するプレーヤー)を作成するには、プレイヤー名の頭に「?」を付けます。


  • (turn-order <turn>...<turn>)
 プレイヤーの手番の順序を設定します。

 最も基本的な形式では、プレイヤー名を手番順に並べて、ターンの順序を指定します。
 最初のプレイヤー、次のプレイヤー・・・最後のプレイヤーと並べます。
 プレイヤー名のリストの最後まで来ると、リストの最初から順番を繰り返します。

 ターンの順序は、プレイされる可能性のある移動の種類に制限を設けて、一方の側が他方の駒を動かすことを可能にすることもできます。
 各<turn>引数は、次のいずれかです。

①<player>
 与えられたプレイヤーがこの手番をプレイします。
 並んだプレイヤーの順に手番が回ります。
 並んだ順番で繰り返されます。

例)
  • (turn-order White Black)
 ターン順:(白,黒),(白,黒),・・・
  • (turn-order White White Black Black)
 ターン順:(白,白,黒,黒),(白,白,黒,黒),・・・

②(<player> <move-type>)
 与えられたプレイヤーがこの手番をプレイしますが、<move-type>で与えられた動きのみ可能です。

例)
  • (turn-order (White move1) (White move2) (Black move1) (Black move2))
 ターン順:(白:動き1,白:動き2,黒:動き1,黒:動き2),・・・

※<move-type>は、各<player>毎に1種類ずつしか指定できません。
 つまり、複数の<move-type>を同じ手番内にまとめて指定することはできません。

③(<player> <player>)
 引数1のプレイヤーが、引数2のプレイヤーの駒を動かします。

例)
  • (turn-order White (White Black) Black (Black White))
 ターン順:白,白:黒の駒,黒,黒:白の駒),・・・

※別のプレイヤーの駒を操作する場合に使用します。
 交互に相手の駒を動かせる場合は使用できますが、特定のシーンでのみ相手の駒を操作するのは困難です。

④(<player> <player> <move-type>)
 引数1のプレイヤーが、引数2のプレイヤーの駒で、与えられた種類の動きで動かします。

例)
  • (turn-order White (White Black move1) Black (Black White move1))
 ターン順:白,白:黒の駒で動き1,黒,黒:白の駒で動き1),・・・

  • repeat
 手番の順序の最後までいくと「repeat」へ戻って繰り返します。
 つまり、「repeat」の前までは1度しか実行しませんが、「repeat」の後を繰り返して実行します。

例)
  • (turn-order White repeat Black Black White White)
 ターン順:白,(黒,黒,白,白),(黒,黒,白,白),・・・

※序盤に周期的でない順序で手番を回したい時に使用します。
 例えば、基本的に「2手指し」でも、最初のプレイヤーの初回手番のみ「1手指し」にしたい場合に使用できます。

 ターン順にターンがあると表示されたプレイヤーのみが、コンピュータまたは人間によってプレイ可能です。
 他のプレイヤーは「ニュートラル」サイドとみなされ、「Choose Sides」ダイアログには表示されません。

 実際のプレイヤーの動きの間で、中立の駒を自動的に動かす必要がある場合、追加の「偽の」プレイヤーを作るよりもむしろ、
 通常は実際のプレイヤーにこれらの駒を動かせた方が良いでしょう。
 その理由は、手番を持つプレイヤーが少ないほど、ZoGが計算するにはより良いためです。
 2人以上のプレイヤーのゲームでは、手の探索がとても複雑になります。

例)
  • (turn-order White (Black Neutral1) Black (Black Neutral2))
 ターン順:白,黒(中立1),黒,黒(中立2)

※プレイヤーを3人にして、1P(自分):MAN、2P(相手):PC、3P(中立):PCにするよりも、
 1P(自分):MAN、2P(相手):PCのみにして、3P(中立)の動作は2P(相手)が<move-type Neutral>で行う方が良いようです。





最終更新:2020年08月29日 15:29