; *** Wolf Chess ; *** Game by Dr Arno von Wilpert ; *** ZRF by Ivan A Derzhanski ; You need to purchase Zillions of Games to load this rules file ; Visit the Zillions web site at http://www.zillions-of-games.com (define leap1 ($1 (verify not-friend?) add) ) (define leap2 ($1 $2 (verify not-friend?) add) ) (define slide ($1 (while empty? add $1) (verify not-friend?) add)) (define R-moves (slide n) (slide e) (slide s) (slide w)) (define B-moves (slide ne) (slide nw) (slide se) (slide sw)) (define N-moves (leap1 nne) (leap1 ene) (leap1 ese) (leap1 sse) (leap1 ssw) (leap1 wsw) (leap1 wnw) (leap1 nnw) ) (define Narr-moves (slide nne) (slide ene) (slide ese) (slide sse) (slide ssw) (slide wsw) (slide wnw) (slide nnw) ) (define Pawn-add (if (in-zone? promotion-zone) (add Knight Bishop Rook Narr Fox Wolf Queen) (if $1 (add Elephant)) else add) ) (define First-move ( (verify (in-zone? $1-start)) n (verify empty?) n (verify empty?) add ) ) (define Pawn-move ( $1 (verify empty?) (Pawn-add $2) )) (define Pawn-take ( $1 (verify enemy?) (Pawn-add $2) )) (define En-Passant ( $1 (verify enemy?) (verify last-to?) (verify (or (piece? Pawn) (piece? Sergeant))) capture n to n (verify last-from?) add ) ) (define Board-Definitions (image "images\Chess\Chess8x10.bmp") (grid (start-rectangle 5 5 53 53) (dimensions ("a/b/c/d/e/f/g/h" (49 0)) ; files ("10/9/8/7/6/5/4/3/2/1" (0 49)) ; ranks ) (directions (n 0 -1) (e 1 0) (s 0 1) (w -1 0) (ne 1 -1) (nw -1 -1) (se 1 1) (sw -1 1) (nne 1 -2) (ene 2 -1) (ese 2 1) (sse 1 2) (ssw -1 2) (wsw -2 1) (wnw -2 -1) (nnw -1 -2) ) ) (symmetry Black (n s)(s n) (nw sw)(sw nw) (ne se)(se ne) (nne ssw)(ssw nne) (ene wsw)(wsw ene) (ese wnw)(wnw ese) (sse nnw)(nnw sse)) (zone (name promotion-zone) (players White) (positions a10 b10 c10 d10 e10 f10 g10 h10) ) (zone (name promotion-zone) (players Black) (positions a1 b1 c1 d1 e1 f1 g1 h1) ) (zone (name p-start) (players White) (positions a2 b3 c3 d2 e2 f3 g3 h2) ) (zone (name p-start) (players Black) (positions a9 b8 c8 d9 e9 f8 g8 h9) ) (zone (name s-start) (players White) (positions b2 c2 f2 g2) ) (zone (name s-start) (players Black) (positions b9 c9 f9 g9) ) ) (game (title "Wolf Chess") (description "Object: Checkmate the opponent's King. Right-click on any man to bring up the properties dialogue.") (history "Wolf Chess was invented in 1943 by Dr Arno von Wilpert.") (strategy "David Pritchard (_ECV_) remarks: 'Wolf C appears to suffer from two serious drawbacks. Firstly, the thicket of pawns hampers quick development; and secondly, with the kings in opposite corners and the major pieces facing them in the array, strategy tends to be stereotyped with the players perforce attacking on opposite wings.'") (win-sound "Audio\Orchestra_CF.wav") (loss-sound "Audio\Orchestra_FC.wav") (click-sound "Audio\Pickup.wav") (release-sound "Audio\WoodThunk.wav") (players White Black) (turn-order White Black) (pass-turn false) (board (Board-Definitions)) (board-setup (White (Pawn a2 b3 c3 d2 e2 f3 g3 h2) (Sergeant b2 c2 f2 g2) (King a1) (Narr b1) (Bishop c1 d1) (Rook e1) (Fox f1) (Wolf g1) (Queen h1) ) (Black (Pawn a9 b8 c8 d9 e9 f8 g8 h9) (Sergeant b9 c9 f9 g9) (King h10) (Narr g10) (Bishop f10 e10) (Rook d10) (Fox c10) (Wolf b10) (Queen a10) ) ) (piece (name Pawn) (help "Pawn: moves orthogonally forwards, captures diagonally forwards, promotes on 10th row") (description "Pawn\A Pawn can move straight ahead one square, or two squares from its starting position. A Pawn captures by moving one square ahead and diagonally. Upon reaching the far rank a Pawn promotes, changing into a Knight, Bishop, Rook, Narr, Fox, Wolf, Queen or Elephant. On rare occasions a Pawn can also execute a move called `En Passant`, or `in passing`. This allows a Pawn to take an enemy Pawn or Sergeant that has just moved two squares.") (image White "images\Chess\wpawn.bmp" Black "images\Chess\bpawn.bmp") (moves (First-move p) (Pawn-move n true) (Pawn-take nw true) (Pawn-take ne true) (En-Passant e) (En-Passant w) ) ) (piece (name Sergeant) (help "Sergeant: moves and captures orthogonally or diagonally forwards, promotes on 10th row") (description "Sergeant\A Sergeant can move or capture one square orthogonally or diagonally ahead, or two squares orthogonally ahead (but without capturing) from his starting position. A Sergeant captures by moving one square ahead and diagonally. Upon reaching the far rank a Sergeant promotes, changing into a Knight, Bishop, Rook, Narr, Fox, Wolf or Queen. Unlike a Pawn, a Sergeant can't capture en passant.") (image White "images\Chess\wdownpawn.bmp" Black "images\Chess\bdownpawn.bmp") (moves (First-move s) (Pawn-move nw false) (Pawn-move n false) (Pawn-move ne false) (Pawn-take nw false) (Pawn-take n false) (Pawn-take ne false) ) ) (piece (name Knight) (help "Knight: moves like an `L`, 2 squares one way and one the other") (description "Knight\A Knight moves like an `L`, two squares vertically plus one horizontally, or two squares horizontally plus one vertically. It hops over any pieces on the way.") (image White "images\Chess\wknight.bmp" Black "images\Chess\bknight.bmp") (moves (N-moves)) ) (piece (name Narr) (help "Narr: repeats Knight move in any direction; must stop at a capture") (description "Narr\A Narr moves or captures by repeating a Knight move through any number of clear spaces.") (image White "images\Chess\wdownknight.bmp" Black "images\Chess\bdownknight.bmp") (moves (Narr-moves)) ) (piece (name Bishop) (help "Bishop: slides diagonally any number of squares") (description "Bishop\A Bishop moves any number of squares on a diagonal. It may not leap over other pieces.") (image White "images\Chess\wbishop.bmp" Black "images\Chess\bbishop.bmp") (moves (B-moves)) ) (piece (name Fox) (help "Fox: Bishop + Knight") (description "Fox\A Fox moves as a Bishop or a Knight.") (image White "images\Chess\wdownbishop.bmp" Black "images\Chess\bdownbishop.bmp") (moves (B-moves) (N-moves)) ) (piece (name Rook) (help "Rook: slides any number of squares along the row or column.") (description "Rook\A Rook moves any number of squares orthogonally on a rank or a file. It may not leap over other pieces.") (image White "images\Chess\wrook.bmp" Black "images\Chess\brook.bmp") (moves (R-moves)) ) (piece (name Wolf) (help "Wolf: Rook + Knight.") (description "Wolf\A Wolf moves as a Rook or a Knight.") (image White "images\Chess\wdownrook.bmp" Black "images\Chess\bdownrook.bmp") (moves (R-moves) (N-moves)) ) (piece (name Queen) (help "Queen: can slide any number of squares in any direction") (description "Queen\A Queen moves any number of squares in a straight line. It may not leap over other pieces.") (image White "images\Chess\wqueen.bmp" Black "images\Chess\bqueen.bmp") (moves (R-moves) (B-moves)) ) (piece (name Elephant) (help "Elephant: Queen + Nightrider") (description "Elephant\An Elephant moves as a Queen or a Nightrider.") (image White "images\Chess\wdownqueen.bmp" Black "images\Chess\bdownqueen.bmp") (moves (R-moves) (B-moves) (Narr-moves)) ) (piece (name King) (help "King: moves 1 square in any direction to a safe square") (description "King\A King can move to any adjacent square, as long as that square is not under attack. There is no castling in this game.") (image White "images\Chess\wking.bmp" Black "images\Chess\bking.bmp") (moves (leap1 n) (leap1 e) (leap1 w) (leap1 s) (leap1 ne) (leap1 nw) (leap1 se) (leap1 sw) ) ) (loss-condition (White Black) (checkmated King) ) )