. , . , -, , . Cyvasse . , . ( , , ), , . , . . ! , . ( , - ) , , , . , , , , , , . Zane Fisher . , , . ? . . , . , , , , , . ( , ), . ! , , ZRF . , , . , ( , ). , Axiom , , , : (define check-target (if (position-flag? is-target?) (set-flag is-succeed? true) ) ) (define check-target-dir (if (and (on-board? $1)(position-flag? is-target? $1)) (set-flag is-succeed? true) ) ) (define check-dir-3 (if (on-board? $1) $1 (if (not (or enemy? (piece? Mount))) (check-target) (if (not-speared?) (check-target-dir $2) (check-target-dir $3) (check-target-dir $4) ) ) (opposite $1) ) ) (define check-branch-3 mark (if (on-board? $1) $1 (if (not (or enemy? (piece? Mount))) (check-target) (if (not-speared?) (check-dir-3 $1 $1 $2 $3) (check-dir-3 $2 $1 $2 $4) (check-dir-3 $3 $1 $2 $5) ) ) ) back ) (define move-3 ( (check-pass) (set-position-flag is-target? true) START (while (on-board? next) next (set-flag is-succeed? false) (if (or empty? (piece? Point)) (check-branch-3 w sw nw se ne) (check-branch-3 nw w ne se e) (check-branch-3 ne nw e w se) (check-branch-3 e ne se nw sw) (check-branch-3 se e sw ne w) (check-branch-3 sw se w e nw) (if (flag? is-succeed?) add) ) ) )) (piece (name LightHorse) ... (moves (move-3) ... ) ) , . ( ), , , ( , ), , . , . , ZRF. , , ( , ). , ! Zane (Engagement). , , . . -, - . (Rabble) , , (Elephant). , ( ) . , ( , , ). , (Dragon). (unarmored) ( ) . , . , , . , , , / . ( , ), : (define set-engaged (if (flag? is-light-engaged?) (set-flag is-heavy-engaged? true) else (set-flag is-light-engaged? true) ) ) (define check-escape (if (or enemy? (piece? Mount)) (set-flag is-escaped? true) ) ) (define check-other mark (set-flag is-escaped? false) (if (on-board? $1) $1 (check-escape) (if (and friend? (not-in-zone? water) (or (piece? Rabble) (piece? LightHorse) (piece? HeavyHorse) (piece? Elephant) (piece? Crossbow) (piece? Dragon) (piece? Tower) (piece? King))) (set-engaged) (if (or (piece? HeavyHorse) (piece? Elephant) (piece? Dragon) (piece? Tower)) (set-flag is-heavy-engaged? true) ) (if (piece? Tower) (set-flag is-enemy-tower? true) ) ) ) (if (and (on-board? $1) (not-flag? is-escaped?)) $1 (check-escape) (if (and friend? (not-in-zone? water) (or (piece? Elephant) (piece? Crossbow) (piece? Trebuchet) (piece? Dragon))) (set-engaged) (if (or (piece? Elephant) (piece? Dragon)) (set-flag is-heavy-engaged? true) ) ) ) (if (and (on-board? $1) (not-flag? is-escaped?)) $1 (check-escape) (if (and friend? (not-in-zone? water) (or (piece? Crossbow) (piece? Trebuchet))) (set-engaged) ) ) (if (and (on-board? $1) (not-flag? is-escaped?)) $1 (check-escape) (if (and friend? (not-in-zone? water) (piece? Trebuchet)) (set-engaged) ) ) back ) (define check-spears (if (on-board? $1) (if (and (friend? $1) (not-in-zone? water $1) (piece? Spears $1)) (set-engaged) ) ) ) (define check-friend-tower (if (on-board? $1) (if (and (enemy? $1) (piece? Tower $1)) (set-flag is-light-engaged? false) ) ) ) (define check-engaged (verify (not-piece? Mount)) (set-flag is-enemy-tower? false) (set-flag is-light-engaged? false) (set-flag is-heavy-engaged? true) (if (or (piece? Crossbow) (piece? Trebuchet)) (set-flag is-light-engaged? true) ) (if (or (piece? HeavyHorse) (piece? Elephant) (piece? Dragon) (piece? Tower)) (set-flag is-heavy-engaged? false) ) (check-spears sw) (check-spears se) (check-other w) (check-other e) (check-other nw) (check-other ne) (check-other sw) (check-other se) (if (and (not-piece? Tower) (not-piece? Crossbow) (not-piece? Trebuchet) (not-flag? is-enemy-tower?)) (check-friend-tower w) (check-friend-tower e) (check-friend-tower nw) (check-friend-tower ne) (check-friend-tower sw) (check-friend-tower se) ) (verify (and (flag? is-light-engaged?) (flag? is-heavy-engaged?))) ) (define common-1 ( $1 (verify enemy?) (check-engaged) add )) (piece (name King) ... (moves (common-1 w) (common-1 e) (common-1 nw) (common-1 ne) (common-1 sw) (common-1 se) ... ) ) , , , , , . , , Rabble, . (Rabble, Spears King). , , , (Light Horse, Heavy Horse, Dragon). , . (Elephant) , ! , , , , ( , , . , . , : , . ( , ), , , ( ). Light Horse Heavy Horse. : Rabble (x6) light armor, movement allowance 1, engagement range 1 Spears (x3) light Armor, Movement Allowance 1, Engagement Range 1 Light Horse (x3) light Armor, Movement Allowance 3, Engagement Range 1 Heavy Horse (x2) heavy armor, Movement Allowance 2, Engagement Range 1 Elephant (x2) heavy armor, Movement Allowance 1, Engagement Range 2 Crossbows (x2) unarmored, Movement Allowance 2, Engagement Range 3 Trebuchet (x1) unarmored, Movement Allowance 1, Engagement Range 4 (min. 2) Dragon (x1) heavy armor, Movement Allowance 4, Engagement Range 2 Tower (x2) heavy armor, Movement Allowance 0, Engagement Range 1 King (x1) light armor, Movement Allowance 1, Engagement Range 1 . . , (Crossbows) : "Crossbows cannot capture". ? , ! Crossbows , . . , , : , Light Horse , , . , , . (unarmored) (Trebuchet). ! , ( ). , . , (, )! , ! , , . . , . - , - ( ). , , , . , . . , - : , . , , , ! , : , ? : , , , , ! , , . (Tower) . ! . - . ( ) ? ( ). . , , . , (King) , . , , , , . . , , ! , , . , . , , . ! , , ! , : A piece that is adjacent to one or more opposing Towers cannot engage any pieces except the adjacent Tower(s), , ( ). . , . , (Dragon) , , ( , ). , . , , , , . (Spears) , - , . (, , ). ? , . ( ) . , , , . . Spears , () . (Rabble) . ( ) , , . , . . , , . , , . . , , ZRF ( ZoG ) . ( " "), . - : (turn-order White White Black Black) - , Rabble , Rabble. ! , , , . , . , (pass) , : "He must move a piece, or forfeit the game". , ZoG , (), ( , , , , ). , (define rabble-1 ( (set-position-flag from-pos? true) (verify (not-enemy? a8)) (verify (not is-moved?)) $1 (verify (or empty? (piece? Point))) (set-flag other-rabble? false) mark START (while (on-board? next) next (if (not-position-flag? from-pos?) (if (and friend? (piece? Rabble)) (set-flag other-rabble? true) ) ) ) back (if (flag? other-rabble?) (if (empty? a8) (create Point a8) (set-attribute is-moved? true) ) ) (if (not-empty? a8) (capture a8) mark START (while (on-board? next) next (if is-moved? (set-attribute is-moved? false) ) ) back ) add )) (piece (name Rabble) ... (attribute is-moved? false) (moves (rabble-1 nw) (rabble-1 ne) (rabble-1 sw) (rabble-1 se) (rabble-1 w) (rabble-1 e) ) ) ) . Rabble , , - Rabble ( ). , , , , , . , , , Rabble , , ! , , Rabble. , . . . , . . , , ( ). . , . . , ZoG (, ), . , , . - . , ! , . - , 90% - . , , , . , , , . Nine Tile . , . , -, . , . (, ), AI. , . , , (, , . . , Ko Shogi, . ! . , , .