解説:move-priorities

  • move-priorities
 移動タイプ<move-type>に優先順位を割り当てます。

  • (move-priorities <move-type1> <move-type2>...<move-typeN>)
 移動タイプは、<move-type1>、<move-type2>、・・・<move-typeN>の順番に優先されます。
 リストの最初の移動タイプは、残りの移動タイプよりも優先されます。

 つまり、<move-type1>の移動が存在する場合は、必ずその移動を行う必要があります。
 もし、<move-type2>の移動が存在しない場合は、<move-type2>の移動を行う必要があります。
 移動タイプが明示的されていない移動は、最も優先順位が低くなります。

 引数<move-type>は、駒の<move-type>で定義されたものを指定する必要があります。
 <move-priorities>を使用することで、特定の移動タイプの移動のみに制限できます。

※複数の<move-type>を同一優先度にすることができないのが難点です。

①駒の設定:<move-type>を設定
(piece
 (moves
  (move-type capturing)
  (n (if enemy? add))
  (move-type non-capturing)
  (n (if empty? add))
 )
)

②ゲームの設定:(move-priorities XX)を設定
(game
 (move-priorities capturing non-capturing)
)

 移動タイプ<capturing>の移動が可能な場合、必ずキャプチャを伴う移動を行います。
 移動タイプ<capturing>の移動が不能な場合、キャプチャを伴わない移動が行えます。
→「取る一手将棋」(駒を取れる場合は必ず取らなくてはならない)などで利用されます。


最終更新:2020年08月24日 01:29