升变其他子,自身也升变
(define scout (
(if (or (and (not-friend? 3iv)(piece? Rook 3iv))此处省略一大串检测
)
(change-type $2)
$1
(while (in-zone? play-zone)
(if (and enemy? (not-piece? Princess))
from(if (piece? Rook) (change-type Ambush_Rook))此处省略一大串升变
(add-partial frame))
$1)
)))
追加的frame移动
(define shift-Scout (
(verify not-last-to?)
$1
(verify (in-zone? $2))
(verify not-friend?)
(if (not-piece? Princess)
(prisoner-check))
(if enemy?
(first-empty)
(convert-prisoner)
)
(add-partial move-2nd)
))
设置标记
(define curse (
(verify last-to?)
$1
(while (in-zone? play-zone)
(if (and not-empty?(not-flag? bCurse)(not-piece? Princess))
from
(set-flag bCurse true)
add-partial move-3rd)
$1
)
))
还是之前的问题,升变其他棋子之后,最后增加棋步的我判断不在原来的棋子上了,所以第二步左右移动执行不了