複数駒の連続cascade

<駒Aの右隣に、味方の駒B、駒C、駒Dが横一列に並んでいる場合>
 連続で「cascade」を行うことによって、1回の移動で複数の味方の駒を同時に動かせます。

 なお、「cascade」は、敵の駒を移動させることも可能です。
 (「friend?」を「enemy?」に変更するだけです)

(define shift1
 ( (verify (in-zone? play-zone) )
  e
  (verify friend?)
  add ・・・駒Aの移動先
 )
)

※この駒Aを右へ1マス移動し、その位置に味方の駒Bがあれば、そこへ移動します。

(define shift2
 ( (verify (in-zone? play-zone) )
  e
  to ・・・駒Aの移動先
  (verify friend?)
  cascade ・・・駒B
  n
  add ・・・駒Bの移動先
 )
)

※この駒Aを右へ1マス移動し、その位置に味方の駒Bがあれば、そこへ移動します。
 そして、そこにあった味方の駒Bを上へ1マス移動します。

→味方の駒Bは、自身の位置から上に1マス移動します。

(define shift3
 ( (verify (in-zone? play-zone) )
  e
  to ・・・駒Aの移動先
  mark
  (verify friend?)
  cascade ・・・駒B
  n
  to ・・・駒Bの移動先
  back
  e
  (verify friend?)
  cascade ・・・駒C
  n
  add ・・・駒Cの移動先
 )
)

※この駒Aを右へ1マス移動し、その位置に味方の駒Bがあれば、そこへ移動します。
 そして、そこにあった味方の駒Bを上へ1マス移動します。
 駒Bの移動元に戻り、右へ1マス移動し、その位置に味方の駒Cがあれば、そこにあった味方の駒Cを上へ1マス移動します。

→味方の駒B・Cは、自身の位置から上に1マス移動します。

(define shift4
 ( (verify (in-zone? play-zone) )
  e
  to ・・・駒Aの移動先
  mark
  (verify friend?)
  cascade ・・・駒B
  n
  to ・・・駒Bの移動先
  back
  e
  mark
  (verify friend?)
  cascade ・・・駒C
  n
  to ・・・駒Cの移動先
  back
  e
  mark
  (verify friend?)
  cascade ・・・駒D
  n
  add ・・・駒Dの移動先
 )
)

※この駒Aを右へ1マス移動し、その位置に味方の駒Bがあれば、そこへ移動します。
 そして、そこにあった味方の駒Bを上へ1マス移動します。
 駒Bの移動元に戻り、右へ1マス移動し、その位置に味方の駒Cがあれば、そこにあった味方の駒Cを上へ1マス移動します。
 駒Cの移動元に戻り、右へ1マス移動し、その位置に味方の駒Dがあれば、そこにあった味方の駒Dを上へ1マス移動します。

→味方の駒B・C・Dは、自身の位置から上に1マス移動します。


最終更新:2020年09月16日 12:26