last-fromとlast-to


(
 (go last-from)
 add
)
※自分と相手が交互に指す場合、(go last-from)は、
 1手番前に、相手が最後に動かした駒の移動元(移動前の位置)へ移動します。
 1手番目では動かせません。


(
 (go last-to)
 add
)
※自分と相手が交互に指す場合、(go last-to)は、
 1手番前に、相手が最後に動かした駒の移動先(移動後の位置)へ移動します。
 1手番目では動かせません。

<連続手番の場合>

(turn-order (Black move-1) (Black move-2) (White move-1) (White move-2) )

(piece
 (name Try)
 (moves
  (move-type move-1)
  (try1)
  (move-type move-2)
  (try2)
 )
)

(define try1
 (
  n ・・・nへ移動
  add
 )
)

(define try2
 (
  w ・・・try1で進んだ位置からwへ移動(nwへ移動)
  add
 )
)


(define try2
 (
  (go last-from)
  w ・・・try1で進む前の位置からwへ移動
  add
 )
)
※自分の手番が2回連続する場合、(go last-from)は、
 2手番目の移動において、1手番目の移動で、自分が最後に動かした駒の移動元(移動前の位置)へ移動します。


(define try2
 (
  n
  n
  capture ・・・nに2マス進んだ位置の駒を取る
  (go last-to)
  w ・・・try1で進んだ位置からwへ移動(nwへ移動)
  add
 )
)
※自分の手番が2回連続する場合、(go last-to)は、
 2手番目の移動において、1手番目の移動で、自分が最後に動かした駒の移動先(移動後の位置)へ移動します。

<連続移動の場合>

(turn-order Black White)

(piece
 (name Try)
 (attribute never? true)
 (moves
  (try1)
  (try2)
 )
)

(define try1
 (
  (verify never?)
  n ・・・nへ移動
  (set-attribute never? false)
  add-partial
 )
)

(define try2
 (
  (verify (not never?))
  w ・・・try1で進んだ位置からwへ移動(nwへ移動)
  (set-attribute never? true)
  add
 )
)


(define try2
 (
  (verify (not never?))
  (go last-from)
  w ・・・try1で進む前の位置からwへ移動
  (set-attribute never? true)
  add
 )
)
※自分の手番で2回連続で指す場合、(go last-from)は、
 2回目の移動において、1回目の移動で、自分が最後に動かした駒の移動元(移動前の位置)へ移動します。


(define try2
 (
  (verify (not never?))
  n
  n
  capture ・・・nに2マス進んだ位置の駒を取る
  (go last-to)
  w ・・・try1で進んだ位置からwへ移動(nwへ移動)
  (set-attribute never? true)
  add
 )
)
※自分の手番で2回連続で指す場合、(go last-to)は、
 2回目の移動において、1回目の移動で、自分が最後に動かした駒の移動先(移動後の位置)へ移動します。


最終更新:2020年09月15日 11:14