Thanks, Peter. It finds and defends against these wins much better now.
The
macro I used, wtih comments:
(define King-forward (
$1
(verify not-friend?)
(if (in-zone? promotion-zone)
(verify not-attacked?) ; to prevent moving into check
(if (in-zone? promotion-zone a1)
(capture White-throne) ; dummy position with a white King
else
(capture Black-throne) ; dummy position with a Black King
)
add
else
(add-create) ; another macro to make the move and create a piece
; if appropriate. Your normal move goes here.
)
))