; *** Chigorin Chess ; *** Based on Zillions v.1.2 Chess ZRF, which is ; Copyright 1998-2000 Zillions Development ; v.1.0 ; 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 king-shift ($1 (verify not-friend?) (set-attribute never-moved? false) add) ) (define slide ($1 (while empty? add $1) (verify not-friend?) add)) (define rook-slide ( $1 (while empty? (set-attribute never-moved? false) add $1) (verify not-friend?) (set-attribute never-moved? false) add )) (define O-O ( (verify never-moved?) e ; KB1 (verify empty?) e ; KN1 (verify empty?) cascade e ; KR1 (verify (and friend? (piece? Rook) never-moved?) ) from back ; K1 ; Save expensive not-attacked?s for last (verify not-attacked?) e ; KB1 (verify not-attacked?) to (set-attribute never-moved? false) ; We could check if KN1 is attacked too, but this isn't ; really necessary since Zillions doesn't allow any moves ; into check e ; KN1 (set-attribute never-moved? false) add ) ) (define O-O-O ( (verify never-moved?) w ; Q1 (verify empty?) w ; QB1 (verify empty?) cascade w ; QN1 (verify empty?) w ; QR1 (verify (and friend? (piece? Rook) never-moved?) ) from back ; K1 ; Save expensive not-attacked?s for last (verify not-attacked?) w ; Q1 (verify not-attacked?) to (set-attribute never-moved? false) ; We could check if KN1 is attacked too, but this isn't ; really necessary since Zillions doesn't allow any moves ; into check w ; QB1 (set-attribute never-moved? false) add ) ) (define Pawn-add (if (in-zone? promotion-zone) (add Knight Bishop Rook Queen Cardinal Marshal) else add) ) (define Pawn-move ( n (verify empty?) (Pawn-add) (verify (in-zone? third-rank)) n (verify empty?) add ) ) (define Pawn-capture ( $1 (verify enemy?) (Pawn-add) ) ) (define En-Passant ( $1 (verify enemy?) (verify last-to?) (verify (piece? Pawn)) capture n to n (verify last-from?) add ) ) (define Board-Definitions (image "images\Chess\Chess8x8.bmp") (grid (start-rectangle 5 5 53 53) (dimensions ("a/b/c/d/e/f/g/h" (49 0)) ; files ("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) ) ) (symmetry Black (n s)(s n) (nw sw)(sw nw) (ne se)(se ne)) (zone (name promotion-zone) (players White) (positions a8 b8 c8 d8 e8 f8 g8 h8) ) (zone (name promotion-zone) (players Black) (positions a1 b1 c1 d1 e1 f1 g1 h1) ) (zone (name third-rank) (players White) (positions a3 b3 c3 d3 e3 f3 g3 h3) ) (zone (name third-rank) (players Black) (positions a6 b6 c6 d6 e6 f6 g6 h6) ) ) (game (title "Magna Carta Chess") (description "Object: Checkmate Black's King by attacking it so it cannot escape or capture all of Black's Queens, or capture all of White's Cardinals or Marshals. To see a description of how a piece moves right-click on it to bring up its properties dialog. \\ The array and rules for Magna Carta Chess are very close to FIDE Chess. They are identical for Black, representing the defenders of the status quo. The King is England's then ruler John Plantagenet. \\ The White army, representing the instigators of change, differs in having unorthodox pieces in place of the King and Queen. Prominent figures in holding John to account included William the Marshal, whose title means a compound of Rook and Knight, and Stephen Langton, whose titles of Cardinal and Archbishop are alternatives for a compound of Bishop and Knight. A Marshal occupies d1 and a Cardinal e1. White must at all times have at least one Marshal and Cardinal, to compensate for their greater power. White may however promote Pawns to either piece, though not to Queen.") (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 normal) (Black normal)) (pass-turn false) (recycle-promotions true) (loss-condition (Black) (checkmated King) ) (loss-condition (Black) (pieces-remaining 0 Queen)) (loss-condition (White) (pieces-remaining 0 Cardinal)) (loss-condition (White) (pieces-remaining 0 Marshal)) (board (Board-Definitions)) (board-setup (White (Pawn a2 b2 c2 d2 e2 f2 g2 h2) (Knight b1 g1 off 8) (Bishop c1 f1 off 8) (Rook a1 h1 off 8) (Marshal d1 off 8) (Cardinal e1 off 8) ) (Black (Pawn a7 b7 c7 d7 e7 f7 g7 h7) (Knight b8 g8 off 8) (Bishop c8 f8 off 8) (Rook a8 h8 off 8) (Queen d8 off 8) (King e8) ) ) (piece (name Pawn) (help "Pawn: moves forward, captures diagonally, can promote on 8th 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. If a Pawn reaches the far rank it promotes, changing into any piece that started on its side of the board other than a Pawn or a King. On rare occasions Pawns can also execute a move called `En Passant`, or `in passing`. This allows a Pawn to take an enemy Pawn that has just moved two squares.") (image White "images\Chess\wpawn.bmp" Black "images\Chess\bpawn.bmp") (moves (move-type normal) (Pawn-capture nw) (Pawn-capture ne) (Pawn-move) (En-Passant e) (En-Passant w) ) ) (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 (move-type normal) (leap2 n ne) (leap2 n nw) (leap2 s se) (leap2 s sw) (leap2 e ne) (leap2 e se) (leap2 w nw) (leap2 w sw) ) ) (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 (move-type normal) (slide ne) (slide nw) (slide se) (slide sw) ) ) (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") (attribute never-moved? true) (moves (move-type normal) (rook-slide n) (rook-slide e) (rook-slide s) (rook-slide w) ) ) (piece (name Cardinal) (help "Cardinal: slides diagonally any number of spaces, or jumps like a Knight") (description "Cardinal\A Cardinal moves any number of squares on a diagonal, or jumps like a Knight. It may not leap over other pieces when sliding, but may when jumping.") (image White "images\Chess\wknightbishop.bmp" Black "images\Chess\bknightbishop.bmp") (attribute can-castle? false) (moves (move-type normal) (leap2 n ne) (leap2 n nw) (leap2 s se) (leap2 s sw) (leap2 e ne) (leap2 e se) (leap2 w nw) (leap2 w sw) (slide ne) (slide nw) (slide se) (slide sw) (move-type cost-add-move) (add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add) ) ) (piece (name Marshal) (help "Marshal: slides orthogonally any number of spaces, or jumps like a Knight") (description "Marshal\A Marshal moves any number of squares orthogonally, or jumps like a Knight. It may not leap over other pieces when sliding, but may when jumping.") (image White "images\Chess\wknightrook.bmp" Black "images\Chess\bknightrook.bmp") (attribute can-castle? false) (moves (move-type normal) (leap2 n ne) (leap2 n nw) (leap2 s se) (leap2 s sw) (leap2 e ne) (leap2 e se) (leap2 w nw) (leap2 w sw) (slide n) (slide s) (slide e) (slide w) (move-type cost-add-move) (add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add) ) ) (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 (move-type normal) (slide n) (slide e) (slide s) (slide w) (slide ne) (slide nw) (slide se) (slide sw) (move-type cost-add-move) (add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add) ) ) (piece (name King) (help "King: steps 1 square in any direction to a safe square") (description "King\A King can move to any adjacent square, but never to a square where it can be captured. It may also `castle` with the Rook if neither the Rook nor King has moved yet and there is nothing in between them. In castling the King moves two squares nearer the Rook and the Rook leaps to the far side of the King. You may not castle out of or through check, or if the King or Rook involved has previously moved.") (image White "images\Chess\wking.bmp" Black "images\Chess\bking.bmp") (attribute never-moved? true) (moves (move-type normal) (king-shift n) (king-shift e) (king-shift s) (king-shift w) (king-shift ne) (king-shift nw) (king-shift se) (king-shift sw) (O-O) (O-O-O) ) ) ) (variant (title "Magna Carta Chess -- Original rules") (description "Object: Checkmate Black's King by attacking it so it cannot escape, or capture all of White's Cardinals or Marshals. To see a description of how a piece moves right-click on it to bring up its properties dialog. \\ The array and rules for Magna Carta Chess are very close to FIDE Chess. They are identical for Black, representing the defenders of the status quo. The King is England's then ruler John Plantagenet. \\ The White army, representing the instigators of change, differs in having unorthodox pieces in place of the King and Queen. Prominent figures in holding John to account included William the Marshal, whose title means a compound of Rook and Knight, and Stephen Langton, whose titles of Cardinal and Archbishop are alternatives for a compound of Bishop and Knight. A Marshal occupies d1 and a Cardinal e1. White must at all times have at least one Marshal and Cardinal, to compensate for their greater power. White may however promote Pawns to either piece, though not to Queen.") (history "This is a different-armies variant based on a theme in English history. It could be seen as a `micro-regional` variant like PASGL 312 Chess, as it is set in the specific locality of Runnymede, on the Thames where it forms the northern edge of my native county of Surrey in England. However the events of that place in 1215 had implications far beyond, most immediately downstream at Westminster. \\ Game of Charles Gilman, ZRF by Peter Aronson. \\ ZRF Revision 1.0, September 15th, 2003.") (strategy "???") (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 normal) (Black normal)) (pass-turn false) (recycle-promotions true) (loss-condition (Black) (checkmated King) ) (loss-condition (White) (pieces-remaining 0 Cardinal)) (loss-condition (White) (pieces-remaining 0 Marshal)) (piece (name Cardinal) (help "Cardinal: slides diagonally any number of spaces, or jumps like a Knight") (description "Cardinal\A Cardinal moves any number of squares on a diagonal, or jumps like a Knight. It may not leap over other pieces when sliding, but may when jumping.") (image White "images\Chess\wknightbishop.bmp" Black "images\Chess\bknightbishop.bmp") (attribute can-castle? false) (moves (move-type normal) (leap2 n ne) (leap2 n nw) (leap2 s se) (leap2 s sw) (leap2 e ne) (leap2 e se) (leap2 w nw) (leap2 w sw) (slide ne) (slide nw) (slide se) (slide sw) (move-type cost-add-move) (add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add) ) ) (piece (name Marshal) (help "Marshal: slides orthogonally any number of spaces, or jumps like a Knight") (description "Marshal\A Marshal moves any number of squares orthogonally, or jumps like a Knight. It may not leap over other pieces when sliding, but may when jumping.") (image White "images\Chess\wknightrook.bmp" Black "images\Chess\bknightrook.bmp") (attribute can-castle? false) (moves (move-type normal) (leap2 n ne) (leap2 n nw) (leap2 s se) (leap2 s sw) (leap2 e ne) (leap2 e se) (leap2 w nw) (leap2 w sw) (slide n) (slide s) (slide e) (slide w) (move-type cost-add-move) (add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add add) ) ) (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 (move-type normal) (slide n) (slide e) (slide s) (slide w) (slide ne) (slide nw) (slide se) (slide sw) ) ) )