; *** Ultra Chess v.0.0 12 May 1999 ; *** Designed by Pavel Tikhomirov by ; *** modifying Standard Chess by ; *** Copyright 1999 Zillions Development ; v.1.0.2 ; Rules of that chess variant was developped by Ruggero Micheletto ; 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?) mark e ; KQ1 (verify empty?) e ; KS1 (verify empty?) cascade e ; KB1 (verify empty?) e ; KN1 (verify empty?) e ; KR1 (verify (and friend? (piece? Rook) never-moved?) ) from back ; K1 ; Save expensive not-attacked?s for last (verify not-attacked?) e ; 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 e ; QB1 (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 Soldier Queen) else add) ) (define Pawn-move ( n (verify empty?) (Pawn-add) (verify (in-zone? third-rank)) n (verify empty?) add (verify(in-zone? fourth-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 En-Passant1 ( $1 (verify enemy?) (verify last-to?) (verify (piece? Pawn)) capture n to n n (verify last-from?) add ) ) (define En-Passant2 ( $1 (verify enemy?) (verify last-to?) (verify (piece? Pawn)) capture n n to n (verify last-from?) add ) ) (define Board-Definitions (image "images\Chess\Chess10x10.bmp") (grid (start-rectangle 5 5 55 55) (dimensions ("a/b/c/d/e/f/g/h/i/j" (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) ) ) (symmetry Black (n s)(s n) (nw sw)(sw nw) (ne se)(se ne)) (zone (name promotion-zone) (players White) (positions a10 b10 c10 d10 e10 f10 g10 h10 i10 j10) ) (zone (name promotion-zone) (players Black) (positions a1 b1 c1 d1 e1 f1 g1 h1 i1 j1) ) (zone (name third-rank) (players White) (positions a3 b3 c3 d3 e3 f3 g3 h3 i3 j3) ) (zone (name fourth-rank) (players White) (positions a4 b4 c4 d4 e4 f4 g4 h4 i4 j4) ) (zone (name third-rank) (players Black) (positions a8 b8 c8 d8 e8 f8 g8 h8 i8 j8) ) (zone (name fourth-rank) (players Black) (positions a7 b7 c7 d7 e7 f7 g7 h7 i7 j7) ) ) (game (title "Ultra Chess") (description "Object: Checkmate the opponent's King 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.") (history "Ultra Chess is a modern large chess variant of an Standard Chess game. The game rules was invented by Ruggero Micheletto for the 1999 contest of the Large Chess Variants. Full rules description can be found at http://www.cs.ruu.nl/~hansb/d.chessvar/large.dir/contest/ultrachess.html. Here the idea of game creation is introduced by its author. In the past Xianqi had to move from Asia to the Aristocracy in Europe. People of that times felt the necessity to introduce King and Queen to fit the spirit of that age. What they did, was to create nowadays chess as we know it. In another variant I was considering, I tried to reproduce Xianqi as it was, a War game, with a General (King), two powerful warrior at his side (Queens) and so on. There is another possibility, I think also reasonable and logical, to introduce the King and Queen as our ancestors wanted. The only way to do that without removing one of the powerful warriors - and then create the nowadays 8x8 chess game - is to leave all the war pieces as they are, and to substitute the single piece general with the two pieces King and a Queen. In this way the board gets 10x10 and everything is symmetric. For reason of space, the pawns must obviously move more forward, that's why I introduced a 3rd steps forward. Due to the lot of space the strategy in this variation should be really great, this game should be very open and complex. The player has all the space and pieces to use his creativity. The Soldier are introduced, like two modern chess Queens in a 10x10 checkerboard. Every piece can move one step in every direction (!) I introduced this rule as it is. It is necessary to increase the general power of the pieces. A mere Knight or Bishop in a 10x10 board is easily taken by the opponent team. Things are different if they can move one step in any direction. This gives a lot of flexibility to pieces movement and equilibrate the super attack power of two Soldier on the board. Just imagine to have a Bishop on a diagonal, and just shift it on another one... a great new potential in gameplay. The Queen moves only in any direction like her King. That nowadays chess role is taken by the two Soldiers. Her power will appear in the final, where she will follow and protect her King. ") (strategy "In the opening, try to develop your pieces more than your pawns. Always protect your King. Look for ways to exchange lower valued pieces for larger valued ones. Generally, if a Pawn is worth 1 point, then a Bishop or Knight is worth 3, a Rook is worth 5 and a Soldier worth 9 points.") (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 b2 c2 d2 e2 f2 g2 h2 i2 j2) (Knight b1 i1) (Bishop c1 h1) (Rook a1 j1) (Soldier d1 g1) (Queen f1) (King e1) ) (Black (Pawn a9 b9 c9 d9 e9 f9 g9 h9 i9 j9) (Knight b10 i10) (Bishop c10 h10) (Rook a10 j10) (Soldier d10 g10) (Queen f10) (King e10) ) ) (piece (name Pawn) (help "Pawn: moves forward, captures diagonally, can promote 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. If a Pawn reaches the far rank it promotes, changing into a Knight, Bishop, Rook, Soldier or Queen. 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 or three squares.") (image White "images\Chess\wpawn.bmp" Black "images\Chess\bpawn.bmp") (moves (Pawn-capture nw) (Pawn-capture ne) (Pawn-move) (En-Passant e) (En-Passant w) (En-Passant1 e) (En-Passant1 w) (En-Passant2 se) (En-Passant2 sw) ) ) (piece (name Knight) (help "Knight: moves like an `L`, 2 squares one way and one the other. It can also move 1 square any direction like King.") (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. It can also move 1 square any direction like King.") (image White "images\Chess\wknight.bmp" Black "images\Chess\bknight.bmp") (moves (leap2 n ne) (leap2 n nw) (leap2 s se) (leap2 s sw) (leap2 e ne) (leap2 e se) (leap2 w nw) (leap2 w sw) (king-shift n) (king-shift e) (king-shift s) (king-shift w) (king-shift ne) (king-shift nw) (king-shift se) (king-shift sw) ) ) (piece (name Bishop) (help "Bishop: slides diagonally any number of squares. It can also move 1 square any direction like King.") (description "Bishop\A Bishop moves any number of squares on a diagonal. It may not leap over other pieces. It can also move 1 square any direction like King.") (image White "images\Chess\wbishop.bmp" Black "images\Chess\bbishop.bmp") (moves (slide ne) (slide nw) (slide se) (slide sw) (king-shift n) (king-shift e) (king-shift s) (king-shift w) (king-shift ne) (king-shift nw) (king-shift se) (king-shift sw) ) ) (piece (name Rook) (help "Rook: slides any number of squares along the row or column. It can also move 1 square in any direction like King") (description "Rook\A Rook moves any number of squares orthogonally on a rank or a file. It may not leap over other pieces. It can also move 1 square any direction like King.") (image White "images\Chess\wrook.bmp" Black "images\Chess\brook.bmp") (attribute never-moved? true) (moves (rook-slide n) (rook-slide e) (rook-slide s) (rook-slide w) (king-shift n) (king-shift e) (king-shift s) (king-shift w) (king-shift ne) (king-shift nw) (king-shift se) (king-shift sw) ) ) (piece (name Soldier) (help "Soldier: can slide any number of squares in any direction") (description "Soldier\A Soldier 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 (slide n) (slide e) (slide s) (slide w) (slide ne) (slide nw) (slide se) (slide sw) (king-shift n) (king-shift e) (king-shift s) (king-shift w) (king-shift ne) (king-shift nw) (king-shift se) (king-shift sw) ) ) (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 (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) ) ) (piece (name Queen) (help "Queen: steps 1 square in any direction like King") (description "Queen\A Queen can move to any adjacent square.") (image White "images\Chess\wdownpawn.bmp" Black "images\Chess\bdownpawn.bmp") (moves (king-shift n) (king-shift e) (king-shift s) (king-shift w) (king-shift ne) (king-shift nw) (king-shift se) (king-shift sw) ) ) (loss-condition (White Black) (checkmated King) ) )