; *** Fantasy Chess ; You need to purchase Zillions of Games to load this rules file ; Visit the Zillions web site at http://www.zillions-of-games.com ; Game created by Sean Duggan in 1993 or so. ZRF created by Sean Duggan Copyright 2004 ; Dream@innocent.com ; CAVEATS ; * As of now, this is a modified version of Duggan's Fantasy Chess. I'll probably update the variant entry ; in accordance, as this one plays a bit better. ; * There was an odd bug in the Archer movement, where a Golem could cut off more avenues of attack than he ; should. Haven't seen this happen for a while, but may still exist. (define CaptureAdd ; This allows the rook to only be captured by the Adept and the Merc, so long as I employ it properly. (if (not-piece? Golem) add) ) (define Adept-shift ($1 (verify not-friend?) add) ) (define leap ($1 (verify not-friend?) (CaptureAdd)) ) (define slide ($1 (while empty? add $1) (verify not-friend?) (CaptureAdd))) (define Merc-add (if (in-zone? promotion-zone) (add Archer Commander Bishop) else add) ) (define Commander-add (if (in-zone? promotion-zone2) (add Archer Assassin Golem Bishop) else add) ) (define Merc-move ( n (verify empty?) (Merc-add) (verify (in-zone? third-rank)) n (verify empty?) add ) ) (define Archer-move1 $1 (verify empty?) $2 (verify not-friend?) (CaptureAdd) (go from) ) (define Archer-move2 $1 (verify empty?) $1 (verify empty?) $2 (verify empty?) $2 (verify not-friend?) (CaptureAdd) (go from) ) (define Archer-move3 $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify not-friend?) (CaptureAdd) (go from) ) (define Archer-move4 $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify not-friend?) (CaptureAdd) (go from) ) (define Archer-move5 $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify not-friend?) (CaptureAdd) (go from) ) (define Archer-move6 $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify not-friend?) (CaptureAdd) (go from) ) (define Archer-move7 $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify empty?) $2 (verify not-friend?) (CaptureAdd) (go from) ) (define Archer-moves ( (Archer-move1 $1 $2) (Archer-move2 $1 $2) (Archer-move3 $1 $2) (Archer-move4 $1 $2) (Archer-move5 $1 $2) (Archer-move6 $1 $2) (Archer-move7 $1 $2) ) ) (define Merc-capture ( (verify attacked?) $1 (verify not-friend?) (Merc-add) ) ) (define Command-move ( $1 (verify empty?) (Commander-add) ) ) (define Command-capture ( $1 (verify not-friend?) add (Commander-add) ) ) (define Golem-moveCapture ( $1 (verify (not-piece? Golem)) (if not-empty? capture) $1 (verify (not-piece? Golem)) (if not-empty? capture) $1 (verify not-empty?) (verify (not-piece? Golem)) add ) ) (define Golem-moveCapture2 ( $1 (if not-empty? capture) (verify (not-piece? Golem)) $1 (verify not-empty?) (verify (not-piece? Golem)) add ) ) (define Golem-move ( $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) add ) ) (define Golem-move2 ( $1 (verify empty?) $1 (verify empty?) 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 promotion-zone2) (players White) (positions a1 b1 c1 d1 e1 f1 g1 h1) ) (zone (name promotion-zone2) (players Black) (positions a8 b8 c8 d8 e8 f8 g8 h8) ) (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 "Fantasy Chess") (description "Object: Checkmate the opponent's Adept by attacking it so it cannot escape. To see a description of how a piece moves right-click on it to bring up its properties dialog.\\ Try playing one of the many exciting variants.") (history "Chess is a modern version of an ancient Indian game called Shatranj. \\Fantasy Chess was developed by Sean Duggan somewhere in 1993 to 1994. He mentioned it offhand to Hans L. Bodlaender on USEnet and several years later, was amazed to find it still existed on http://www.chessvariants.com. After acquiring Zillions of Games, he made several abortive attempts to develop a ZRF version. In the process, the rules became more refined, being that he had a chance to properly play against a skilled opponent. This was the result.") (strategy "At this time, an optimal strategy is not known. Experiences playing seem to suggest that it is vitally important to maintain mobility of pieces, as the Assassin is able to be alongside a vital piece in a heartbeat.") (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 (Merc a2 b2 c2 d2 e2 f2 g2 h2) (Archer b1 g1) (Bishop c1 f1) (Golem a1 h1) (Assassin d1) (Adept e1) ) (Black (Merc a7 b7 c7 d7 e7 f7 g7 h7) (Archer b8 g8) (Bishop c8 f8) (Golem a8 h8) (Assassin d8) (Adept e8) ) ) (piece (name Merc) (help "Merc: moves forward, captures to either side or the front if threatened, can promote on 8th row") (description "Merc\A Merc can move straight ahead one square, or two squares from its starting position. A Merc captures by moving one square ahead, one step to the left, or one step to the right. The Merc may capture a Golem with its capturing move. It may only attack if it is threatened by an enemy piece. \ If a Merc reaches the far rank it promotes, changing into a Commander, Bishop, or Archer. These pieces do not have ability to support each other that Pawns do, but they are more deadly individually.") (image White "images\Chess\wpawn.bmp" Black "images\Chess\bpawn.bmp") (moves (Merc-capture w) (Merc-capture e) (Merc-capture n) (Merc-move) ) ) (piece (name Commander) (help "Commander: moves and capture one step horizontally or vertically, can promote on the 1st row.") (description "Commander\A Commander can move and capture one step horizontally or vertically. If a Commander reaches the near rank it promotes, changing into a Bishop, Archer, Assassin, or Golem. Note that Commanders cannot capture Golems.") (image White "images\Chess\wDownpawn.bmp" Black "images\Chess\bDownpawn.bmp") (moves (Command-capture w) (Command-capture e) (Command-capture n) (Command-capture s) ) ) (piece (name Archer) (help "Archer: moves n steps in one direction, then n steps in a perpindicular direction.") (description "Archer\An Archer moves along the sides of a square. So long as it's path is unobstructed, it can travel up to 8 steps in any cardinal direction, than travel the same number of steps in a perpindicular direction. Like a bishop, this piece is restricted to the color of square it starts on. Its value is considered slightly larger than the bishop. It may not leap over other pieces.") (image White "images\Chess\wknight.bmp" Black "images\Chess\bknight.bmp") (moves (Archer-moves n e) (Archer-moves n w) (Archer-moves w n) (Archer-moves w s) (Archer-moves s e) (Archer-moves s w) (Archer-moves e n) (Archer-moves e s) (Archer-moves nw ne) (Archer-moves nw sw) (Archer-moves sw nw) (Archer-moves sw se) (Archer-moves se ne) (Archer-moves se sw) (Archer-moves ne nw) (Archer-moves ne se) ) ) (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 (slide ne) (slide nw) (slide se) (slide sw) ) ) (piece (name Golem) (help "Golem: Travels 3 steps horizontally or vertically or it travels 2 steps diagonally. Has Trample.") (description "Golem\Travels 3 steps horizontally or vertically or it travels 2 steps diagonally. It may take any number of pieces along its path, friendly or enemy so long as its ending square is occupied and there are no Golems along its path. Is only able to be killed by the enemy Adept. This piece is relatively easily blocked, but can be devastating in certain situations. This piece cannot leap over other pieces.") (image White "images\Chess\wrook.bmp" Black "images\Chess\brook.bmp") (moves (Golem-move n) (Golem-move w) (Golem-move e) (Golem-move s) (Golem-move2 ne) (Golem-move2 nw) (Golem-move2 se) (Golem-move2 sw) (Golem-moveCapture n) (Golem-moveCapture w) (Golem-moveCapture e) (Golem-moveCapture s) (Golem-moveCapture2 ne) (Golem-moveCapture2 nw) (Golem-moveCapture2 se) (Golem-moveCapture2 sw) ) ) (define zoom ( $1 (verify empty?) add ) ) (piece (name Assassin) (help "Assassin: can teleport to any empty square or attack like an Adept.") (description "Assassin\An Assassin may teleport to any empty square on the board or it can attack any adjacent space as an Adept does. This piece is highly scored by ZOG, not sure if it's unjustly.") (image White "images\Chess\wqueen.bmp" Black "images\Chess\bqueen.bmp") (moves (zoom a8)(zoom b8)(zoom c8)(zoom d8)(zoom e8)(zoom f8)(zoom g8)(zoom h8) (zoom a7)(zoom b7)(zoom c7)(zoom d7)(zoom e7)(zoom f7)(zoom g7)(zoom h7) (zoom a6)(zoom b6)(zoom c6)(zoom d6)(zoom e6)(zoom f6)(zoom g6)(zoom h6) (zoom a5)(zoom b5)(zoom c5)(zoom d5)(zoom e5)(zoom f5)(zoom g5)(zoom h5) (zoom a4)(zoom b4)(zoom c4)(zoom d4)(zoom e4)(zoom f4)(zoom g4)(zoom h4) (zoom a3)(zoom b3)(zoom c3)(zoom d3)(zoom e3)(zoom f3)(zoom g3)(zoom h3) (zoom a2)(zoom b2)(zoom c2)(zoom d2)(zoom e2)(zoom f2)(zoom g2)(zoom h2) (zoom a1)(zoom b1)(zoom c1)(zoom d1)(zoom e1)(zoom f1)(zoom g1)(zoom h1) (leap n) (leap e) (leap s) (leap w) (leap nw) (leap ne) (leap se) (leap sw) ) ) (define zoom2 ( $1 (verify empty?) (verify defended?) add ) ) (piece (name CowardlyAssassin) (help "Cowardly Assassin: can teleport to any defended empty square or attack like an Adept.") (description "Cowardly Assassin\An Assassin may teleport to any empty square on the board that is defended by a friendly piece or it can attack any adjacent space as an Adept does.") (image White "images\Chess\wqueen.bmp" Black "images\Chess\bqueen.bmp") (moves (zoom2 a8)(zoom2 b8)(zoom2 c8)(zoom2 d8)(zoom2 e8)(zoom2 f8)(zoom2 g8)(zoom2 h8) (zoom2 a7)(zoom2 b7)(zoom2 c7)(zoom2 d7)(zoom2 e7)(zoom2 f7)(zoom2 g7)(zoom2 h7) (zoom2 a6)(zoom2 b6)(zoom2 c6)(zoom2 d6)(zoom2 e6)(zoom2 f6)(zoom2 g6)(zoom2 h6) (zoom2 a5)(zoom2 b5)(zoom2 c5)(zoom2 d5)(zoom2 e5)(zoom2 f5)(zoom2 g5)(zoom2 h5) (zoom2 a4)(zoom2 b4)(zoom2 c4)(zoom2 d4)(zoom2 e4)(zoom2 f4)(zoom2 g4)(zoom2 h4) (zoom2 a3)(zoom2 b3)(zoom2 c3)(zoom2 d3)(zoom2 e3)(zoom2 f3)(zoom2 g3)(zoom2 h3) (zoom2 a2)(zoom2 b2)(zoom2 c2)(zoom2 d2)(zoom2 e2)(zoom2 f2)(zoom2 g2)(zoom2 h2) (zoom2 a1)(zoom2 b1)(zoom2 c1)(zoom2 d1)(zoom2 e1)(zoom2 f1)(zoom2 g1)(zoom2 h1) (leap n) (leap e) (leap s) (leap w) (leap nw) (leap ne) (leap se) (leap sw) ) ) (define zoom3 ( (verify not-attacked?) $1 (verify empty?) add ) ) (piece (name CorneredAssassin) (help "Cornered Assassin: if not threatened, can teleport to any empty square or attack like an Adept.") (description "Cornered Assassin\If it is not threatened by an enemy piece, an Assassin may teleport to any empty square on the board that is defended by a friendly piece or it can attack any adjacent space as an Adept does.") (image White "images\Chess\wqueen.bmp" Black "images\Chess\bqueen.bmp") (moves (zoom3 a8)(zoom3 b8)(zoom3 c8)(zoom3 d8)(zoom3 e8)(zoom3 f8)(zoom3 g8)(zoom3 h8) (zoom3 a7)(zoom3 b7)(zoom3 c7)(zoom3 d7)(zoom3 e7)(zoom3 f7)(zoom3 g7)(zoom3 h7) (zoom3 a6)(zoom3 b6)(zoom3 c6)(zoom3 d6)(zoom3 e6)(zoom3 f6)(zoom3 g6)(zoom3 h6) (zoom3 a5)(zoom3 b5)(zoom3 c5)(zoom3 d5)(zoom3 e5)(zoom3 f5)(zoom3 g5)(zoom3 h5) (zoom3 a4)(zoom3 b4)(zoom3 c4)(zoom3 d4)(zoom3 e4)(zoom3 f4)(zoom3 g4)(zoom3 h4) (zoom3 a3)(zoom3 b3)(zoom3 c3)(zoom3 d3)(zoom3 e3)(zoom3 f3)(zoom3 g3)(zoom3 h3) (zoom3 a2)(zoom3 b2)(zoom3 c2)(zoom3 d2)(zoom3 e2)(zoom3 f2)(zoom3 g2)(zoom3 h2) (zoom3 a1)(zoom3 b1)(zoom3 c1)(zoom3 d1)(zoom3 e1)(zoom3 f1)(zoom3 g1)(zoom3 h1) (leap n) (leap e) (leap s) (leap w) (leap nw) (leap ne) (leap se) (leap sw) ) ) (piece (name Adept) (help "Adept: steps 1 square in any direction to a safe square") (description "Adept\An Adept can move to any adjacent square, but never to a square where it can be captured. This and the Merc are the only pieces who may kill a Golem.") (image White "images\Chess\wking.bmp" Black "images\Chess\bking.bmp") (moves (Adept-shift n) (Adept-shift e) (Adept-shift s) (Adept-shift w) (Adept-shift ne) (Adept-shift nw) (Adept-shift se) (Adept-shift sw) ) ) (loss-condition (White Black) (checkmated Adept) ) ) (variant (title "Cowardly Assassin") (description "The Assassin may only teleport to a section which is defended by a friendly piece.") (board-setup (White (Merc a2 b2 c2 d2 e2 f2 g2 h2) (Archer b1 g1) (Bishop c1 f1) (Golem a1 h1) (CowardlyAssassin d1) (Adept e1) ) (Black (Merc a7 b7 c7 d7 e7 f7 g7 h7) (Archer b8 g8) (Bishop c8 f8) (Golem a8 h8) (CowardlyAssassin d8) (Adept e8) ) ) ) (variant (title "Cornered Assassin") (description "The Cornered Assassin may not teleport when threatened by an enemy piece.") (board-setup (White (Merc a2 b2 c2 d2 e2 f2 g2 h2) (Archer b1 g1) (Bishop c1 f1) (Golem a1 h1) (CorneredAssassin d1) (Adept e1) ) (Black (Merc a7 b7 c7 d7 e7 f7 g7 h7) (Archer b8 g8) (Bishop c8 f8) (Golem a8 h8) (CorneredAssassin d8) (Adept e8) ) ) ) ; ************************************************************************** ; VARIANTS WHERE THE KING ISN'T ROYAL ; ************************************************************************** (variant (title "-") ; -------------------------------------------------------- ) (variant (title "Extinction Chess") (description "Object: Make all of a type of piece extinct; e.g., win by capturing both your opponent's Archers. Mercs and Commanders are considered to be the same piece."); (loss-condition (White Black) (or (pieces-remaining 0 Adept) (pieces-remaining 0 Assassin) (pieces-remaining 0 Golem) (pieces-remaining 0 Bishop) (pieces-remaining 0 Archer) (and (pieces-remaining 0 Merc) (pieces-remaining 0 Commander) ) ) ) ) (variant (title "Cylindrical Chess") (description "Chess played on a cylinder: the left and right edges wrap around.") (board (Board-Definitions) ; Connect left and right edges (links e (h1 a1) (h2 a2) (h3 a3) (h4 a4) (h5 a5) (h6 a6) (h7 a7) (h8 a8)) (links w (a1 h1) (a2 h2) (a3 h3) (a4 h4) (a5 h5) (a6 h6) (a7 h7) (a8 h8)) (links ne (h1 a2) (h2 a3) (h3 a4) (h4 a5) (h5 a6) (h6 a7) (h7 a8)) (links nw (a1 h2) (a2 h3) (a3 h4) (a4 h5) (a5 h6) (a6 h7) (a7 h8)) (links se (h2 a1) (h3 a2) (h4 a3) (h5 a4) (h6 a5) (h7 a6) (h8 a7)) (links sw (a2 h1) (a3 h2) (a4 h3) (a5 h4) (a6 h5) (a7 h6) (a8 h7)) ) )