summaryrefslogtreecommitdiffstats
path: root/hacks/glx/chessgames.h
diff options
context:
space:
mode:
Diffstat (limited to 'hacks/glx/chessgames.h')
-rw-r--r--hacks/glx/chessgames.h343
1 files changed, 0 insertions, 343 deletions
diff --git a/hacks/glx/chessgames.h b/hacks/glx/chessgames.h
deleted file mode 100644
index 28f5c57..0000000
--- a/hacks/glx/chessgames.h
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- * endgame -- plays through a chess game ending. enjoy.
- *
- * Copyright (C) 2002 Blair Tennessy (tennessy@cs.ubc.ca)
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation. No representations are made about the suitability of this
- * software for any purpose. It is provided "as is" without express or
- * implied warranty.
- */
-
-#ifndef __CHESSGAMES_H__
-#define __CHESSGAMES_H__
-
-/** structure for a chess game */
-typedef struct {
-
- /** original board configuration */
- int board[BOARDSIZE][BOARDSIZE];
-
- /** total moves */
- int movecount;
-
- /**
- moves in game. this is a slight hack: moves are encoded in
- integer pairs (x,y). the first pair, _from_, determines the
- piece to move. the second pair, _to_, determines where to move.
-
- in case _to_ is held by another piece, that piece is taken.
- (see drawTakePiece(), draw_chess())
-
- in case the move promotes a pawn, we assume a queening.
- (see drawMovingPiece())
-
- what's lacking?
- castling, en passant, under-promotions.
- */
- int moves[40][4];
-} ChessGame;
-
-#define GAMES 7
-static ChessGame games[GAMES] = {
-
- /**
- game 1:
-
- E. N. Somov-Nasimovitsch
- White to play and win.
-
- "Zadachi I Etiudi"
- 1928
- */
- {
- {
- { 0, 0, 0, 0, 0, BKING, 0, 0},
- { BPAWN, 0, BPAWN, 0, BPAWN, 0, 0, 0},
- { 0, 0, BPAWN, 0, BPAWN, 0, 0, KNIGHT},
- { PAWN, 0, ROOK, 0, 0, 0, 0, 0},
- { PAWN, 0, 0, 0, KING, PAWN, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { BPAWN, 0, 0, 0, 0, 0, 0, PAWN},
- { BBISHOP,0, 0, 0, 0, 0, 0, 0},
- },
-
- 24,
-
- {
- {3, 2, 6, 2},
- {7, 0, 6, 1},
- {6, 2, 6, 6},
- {0, 5, 0, 4},
- {6, 6, 0, 6},
- {0, 4, 1, 3},
- {2, 7, 1, 5},
- {2, 2, 3, 2},
- {0, 6, 0, 3},
- {1, 3, 2, 2},
- {0, 3, 6, 3},
- {3, 2, 4, 2}, /* pawn to bishop 5 */
- {1, 5, 0, 3}, /* check */
- {2, 2, 3, 2},
- {0, 3, 2, 4}, /* takes pawn */
- {3, 2, 2, 2},
- {2, 4, 0, 3},
- {2, 2, 3, 2},
- {6, 3, 6, 1}, /* rook takes bishop */
- {6, 0, 7, 0},
- {6, 1, 3, 1},
- {3, 2, 2, 3},
- {3, 1, 3, 3},
- {0, 0, 2, 3},
- }
- },
-
- /**
- game 2:
-
- K. A. L. Kubbel
- White to play and win.
-
- "Chess in the USSR"
- 1936
- */
- {
- {
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, BPAWN},
- { 0, 0, 0, 0, BPAWN, KING, 0, BKING},
- { 0, 0, 0, 0, 0, ROOK, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { 0,BBISHOP, 0, 0, BROOK, 0, PAWN, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0,BISHOP, 0, 0},
- },
-
- 10,
-
- {
- {3, 5, 6, 5},
- {5, 1, 7, 3},
- {6, 5, 6, 7}, /* check */
- {7, 3, 3, 7},
- {7, 5, 6, 4},
- {5, 4, 6, 4},
- {5, 6, 4, 6}, /* ! */
- {6, 4, 6, 7},
- {4, 6, 3, 6},
- {0, 0, 2, 7}
- }
- },
-
- /**
- game 3:
-
- J. Hasek
- White to play and win.
-
- "Le Strategie"
- 1929
- */
- {
- {
- { 0, 0, 0, KNIGHT, 0, 0, 0, KNIGHT},
- { 0, KING, BPAWN, BPAWN, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { 0, BKING, 0, 0, 0, 0, 0, 0},
- { 0, PAWN, 0, 0, 0, BPAWN, 0, 0},
- { PAWN, 0, PAWN, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- },
-
- 11,
-
- {
- {0, 3, 2, 2},
- {1, 3, 2, 2},
- {0, 7, 2, 6},
- {4, 5, 5, 5},
- {2, 6, 3, 4},
- {5, 5, 6, 5},
- {3, 4, 5, 3}, /* ! */
- {6, 5, 7, 5},
- {5, 3, 6, 1},
- {0, 0, 0, 0}, /* mull it over... */
- {0, 0, 3, 1}
- }
- },
-
- /**
- game 4:
-
- M.B. Newman
- White to play and win.
-
- "Chess Amateur"
- 1913
- */
- {
- {
- { 0, 0, 0, 0, BQUEEN, 0, 0, 0},
- {BKNIGHT, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, PAWN},
- { BKING, 0, BISHOP, 0, KNIGHT, 0, 0, 0},
- { PAWN, 0, 0, 0, KNIGHT, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { KING, 0, 0, 0, 0, 0, 0, 0},
- },
-
- 15,
-
- {
- {4, 2, 3, 1},
- {0, 4, 3, 1}, /* queen wins bishop */
- {4, 4, 5, 2},
- {4, 0, 5, 0}, /* king takes pawn */
- {5, 2, 3, 1}, /* knight takes queen, check */
- {1, 0, 3, 1}, /* knight takes knight */
- {3, 7, 2, 7}, /* pawn advances */
- {3, 1, 2, 3},
- {5, 4, 4, 2},
- {2, 3, 4, 2},
- {2, 7, 1, 7}, /* pawn advances */
- {4, 2, 2, 3},
- {1, 7, 0, 7},
- {0, 0, 0, 0},
- {0, 0, 5, 0}
- }
- },
-
- /**
- game 5:
-
- V.A. Korolikov
- White to play and win
-
- First Prize - "Truda"
- 1935
- */
- {
- {
- { 0, 0, BISHOP, 0, 0, 0, 0, 0},
- { BPAWN, ROOK, 0, 0, 0, 0, 0, 0},
- { 0, 0, BPAWN, PAWN, 0, BKING, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, KING, BBISHOP},
- { 0, 0, 0, 0, BPAWN, 0, PAWN, 0},
- { 0, 0, 0, 0, 0, BPAWN, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- },
-
- 21,
-
- {
- {2, 3, 1, 3}, /* pawn to q7 */
- {2, 5, 1, 4}, /* cover with king */
- {1, 1, 0, 1},
- {4, 7, 5, 6}, /* bishop takes pawn */
- {0, 1, 0, 0}, /* r - r8 */
- {6, 5, 7, 5}, /* queened */
- {1, 3, 0, 3}, /* white pawn promoted */
- {1, 4, 0, 3}, /* king takes queen */
- {0, 2, 2, 0}, /* discovered check */
- {5, 6, 0, 1}, /* pull back bishop */
- {2, 0, 7, 5}, /* bishop takes queen */
- {0, 3, 1, 2},
- {7, 5, 2, 0}, /* save rook */
- {5, 4, 6, 4},
- {2, 0, 6, 4}, /* bishop takes pawn */
- {1, 2, 1, 1}, /* king moves in */
- {6, 4, 5, 5},
- {1, 1, 0, 0},
- {5, 5, 2, 2},
- {0, 0, 0, 0},
- {0, 0, 0, 0}
- }
- },
-
- /**
- game 6:
-
- T.B. Gorgiev
- White to play and win
-
- First Prize - "64"
- 1929
- */
- {
- {
- { 0, 0, 0, 0, 0, 0, KNIGHT, 0},
- { BKNIGHT, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, BKING, BKNIGHT, 0, 0, 0},
- { KING, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, KNIGHT, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, BISHOP, 0, 0, 0},
- },
-
- 13,
-
- {
- {3, 0, 2, 1}, /* king on move */
- {1, 0, 0, 2}, /* check */
- {2, 1, 1, 1},
- {0, 2, 1, 4}, /* knight moves on */
- {7, 4, 5, 6}, /* bishop puts king in check */
- {2, 3, 1, 3}, /* king moves back */
- {0, 6, 2, 5}, /* knight moves in, check */
- {1, 3, 0, 3}, /* king moves back queen */
- {5, 6, 1, 2}, /* bishop - b7 ch!! */
- {2, 4, 1, 2}, /* black knight takes bishop */
- {4, 6, 3, 4}, /* knight to k5 */
- {0, 0, 0, 0}, /* mate */
- {0, 0, 0, 0}
- }
- },
-
- /**
- game 7:
-
- K. A. L. Kubbel
- White to play and win
-
- "Schachmatny Listok"
- 1922
- */
- {
- {
- { 0, KNIGHT, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- { KING, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, 0, BKING, 0, 0, 0, 0},
- { 0, 0, 0, BPAWN, 0, 0, 0, BISHOP},
- { BPAWN, 0, 0, 0, 0, 0, 0, 0},
- { 0, 0, PAWN, PAWN, 0, 0, 0, 0},
- { 0, 0, 0, 0, 0, 0, 0, 0},
- },
-
- 12,
-
- {
- {0, 1, 2, 2}, /* kt-b6 */
- {3, 3, 2, 2}, /* k x kt */
- {4, 7, 2, 5}, /* b-b6 */
- {2, 2, 3, 3}, /* king back to original position */
- {6, 3, 5, 3}, /* p-q3! */
- {5, 0, 6, 0}, /* p-r7 */
- {6, 2, 4, 2}, /* p-b4ch */
- {3, 3, 3, 2}, /* king moves, black cannot capture in passing */
- {2, 0, 1, 1}, /* k-kt7! */
- {6, 0, 7, 0}, /* promo */
- {2, 5, 1, 4}, /* mate */
- {0, 0, 3, 2},
- }
- },
-};
-
-#endif /* __CHESSGAMES_H__ */