「add-partial」と「add-copy-partial」では、移動が完了せず、引き続いて同じ駒の移動を繰り返します。
移動タイプ<move-type>を指定することで、特定の「move」のみを呼び出せます。
「add」または「add-copy」が出た時点で、連続移動が完了します。
(piece
(name Piece-1)
(attribute never? true)
(moves
(move-type move-type-1)
(move-1)
(move-type move-type-2)
(move-2)
)
)
(piece
(name Piece-2)
(attribute never? true)
(moves
(move-type move-type-1)
(move-3)
(move-type move-type-2)
(move-4)
)
)
(define move-1
(
(verify never?)
n
(set-attribute never? false)
(add-partial move-type-2)
)
)
(define move-2
(
(verify (not never?) )
w
(set-attribute never? true)
add
)
)
※「Piece-1」で「move-1」を行い、上へ進んだ後、連続で「move-2」を呼び出して、さらに左へ進んで止まります。
(define move-1
(
(verify never?)
n
(set-attribute never? false)
(add-partial Piece-2 move-type-2)
)
)
(define move-4
(
(verify (not never?) )
e
(set-attribute never? true)
add
)
)
※「Piece-1」で「move-1」を行い、上へ進んで「Piece-2」になった後、連続で「move-2」を呼び出して、さらに右へ進んで止まります。
(define move-1
(
(verify never?)
n
(set-attribute never? false)
(add-partial Piece-1 Piece-2 move-type-2)
)
)
※「Piece-1」で「move-1」を行い、上へ進んだ後、「Piece-1」のままか「Piece-2」に変更するかを選択後、連続で「move-2」を呼び出して、さらに進んで止まります。
※駒を指定(複数の駒から選択)して連続移動することもできますが、指定された駒がその移動タイプ<move-type-2>を有している必要があります。
(piece
(name Piece-1)
(attribute never? true)
(moves
(move-type move-type-1)
(move-1)
(move-type move-type-2)
(move-2)
)
(drops
(move-type drop-type-1)
(drop-1)
)
)
(define drop-1
(
(verify empty?)
(set-attribute never? false)
(add-partial move-type-2)
)
)
※「drop」で「add-partial」や「add-copy-partial」を使用した場合、「moves」内の移動タイプを指定して呼び出すこともできます。
→ドロップ後に連続して、ドロップした駒を移動することができます。
(別の駒をドロップする場合は、その駒が指定された移動タイプを有している必要があります)
※逆に、「move」から「drop」を呼び出したり、「drop」から「drop」を呼び出すことはできないようです。 ??
最終更新:2020年09月15日 11:21