4 * Main header file for xshogi.
6 * ------------------------------------------------------------------------
7 * xshogi is based on XBoard -- an Xt/Athena user interface for GNU Chess.
9 * Original authors: Dan Sears, Chris Sears
10 * Enhancements (Version 2.0 and following): Tim Mann
11 * Modifications to XShogi (Version 1.0): Matthias Mutz
12 * Enhancements to XShogi (Version 1.1): Matthias Mutz
13 * Modified implementation of ISS mode for XShogi: Matthias Mutz
14 * Current maintainer: Michael C. Vanier
16 * XShogi borrows some of its piece bitmaps from CRANES Shogi.
18 * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
19 * Enhancements Copyright 1992 Free Software Foundation, Inc.
20 * Enhancements for XShogi Copyright 1993, 1994, 1995 Matthias Mutz
21 * Copyright (c) 1999 Michael Vanier and the Free Software Foundation
23 * The following terms apply to Digital Equipment Corporation's copyright
25 * ------------------------------------------------------------------------
28 * Permission to use, copy, modify, and distribute this software and its
29 * documentation for any purpose and without fee is hereby granted,
30 * provided that the above copyright notice appear in all copies and that
31 * both that copyright notice and this permission notice appear in
32 * supporting documentation, and that the name of Digital not be
33 * used in advertising or publicity pertaining to distribution of the
34 * software without specific, written prior permission.
36 * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
37 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
38 * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
39 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
40 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
41 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
43 * ------------------------------------------------------------------------
45 * This file is part of GNU shogi.
47 * GNU shogi is free software; you can redistribute it and/or modify
48 * it under the terms of the GNU General Public License as published by
49 * the Free Software Foundation.
51 * GNU shogi is distributed in the hope that it will be useful,
52 * but WITHOUT ANY WARRANTY; without even the implied warranty of
53 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
54 * GNU General Public License for more details.
56 * You should have received a copy of the GNU General Public License
57 * along with GNU shogi; see the file COPYING. If not, write to
58 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
60 * ------------------------------------------------------------------------
71 #ifdef WESTERN_BITMAPS
72 #define LARGE_SQUARE_SIZE 64
73 #define MEDIUM_SQUARE_SIZE 32
75 #define LARGE_SQUARE_SIZE 64
76 #define MEDIUM_SQUARE_SIZE 49
79 #define SMALL_SQUARE_SIZE 32
83 #define DIALOG_SIZE 256
85 #define MOVE_LEN 16 /* enough for "Black resigns\000"*/
86 #define TIME_CONTROL "5" /* in minutes */
87 #define TIME_DELAY "1.0" /* seconds between moves */
88 #define MOVES_PER_SESSION 40 /* moves per TIME_CONTROL */
89 #define BlackOnMove(move) ((int) ((move) % 2) == 0)
91 #define BELLCHAR '\007'
92 #define NULLCHAR '\000'
94 #ifndef FIRST_SHOGI_PROGRAM
95 #define FIRST_SHOGI_PROGRAM "gnushogi"
98 #ifndef SECOND_SHOGI_PROGRAM
99 #define SECOND_SHOGI_PROGRAM "gnushogi"
103 #define FIRST_HOST "localhost"
107 #define SECOND_HOST "localhost"
110 #define MATCH_MODE "False"
111 #define INIT_STRING "beep\neasy\nrandom\n"
112 #define BLACK_STRING "black\ngo\n"
113 #define WHITE_STRING "white\ngo\n"
114 #define DEFAULT_SIZE "Large"
117 #define CHAR_PIECE_COLOR "Black"
118 #define ZERO_COLOR "#000000"
119 #define ONE_COLOR "#FFFFFF"
120 #define PIECE_COLOR "#FFFFD7"
121 #define SQUARE_COLOR "#EBDFB0"
122 #define MAIN_FONT "-*-helvetica-medium-o-normal--*-*-*-*-*-*-*-*"
123 #define COORD_FONT "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*"
124 #define DEFAULT_FONT "*font: -*-helvetica-medium-r-normal--*-120-*-*-*-*-*-*"
125 #define BLINK_COUNT 3
126 #define BORDER_X_OFFSET 3
127 #define BORDER_Y_OFFSET 27
138 BeginningOfGame, MachinePlaysBlack, MachinePlaysWhite, TwoMachinesPlay,
139 ForceMoves, PlayFromGameFile, PauseGame, EndOfGame,
145 MatchFalse, MatchInit, MatchPosition, MatchOpening
150 BlackPawn, BlackLance, BlackKnight, BlackSilver, BlackGold,
151 BlackBishop, BlackRook, BlackPPawn, BlackPLance, BlackPKnight,
152 BlackPSilver, BlackPBishop, BlackPRook, BlackKing,
153 WhitePawn, WhiteLance, WhiteKnight, WhiteSilver, WhiteGold,
154 WhiteBishop, WhiteRook, WhitePPawn, WhitePLance, WhitePKnight,
155 WhitePSilver, WhitePBishop, WhitePRook, WhiteKing,
157 ClearBoard, BlackPlay, WhitePlay /* for use on EditPosition menus */
160 typedef ShogiSquare Board[BOARD_SIZE][BOARD_SIZE];
162 typedef int Catched[2][8];
166 BlackPromotion = 1, WhitePromotion, BlackDrop, WhiteDrop,
168 BlackWins, WhiteWins, GameIsDrawn, StartGame, BadMove, Comment,
174 ResetTimers, DecrementTimers, SwitchTimers,
175 ReDisplayTimers, StopTimers, StartTimers
180 * This is a hack that allows the parser to tell the program
181 * that the game it's loading has finished.
184 extern int loaded_game_finished;
186 #endif /* _XSHOGI_H_ */