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 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 32
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 "Small"
117 #define CHAR_PIECE_COLOR "Black"
118 #define ZERO_COLOR "#000000"
119 #define ONE_COLOR "#FFFFFF"
120 #define BLACK_PIECE_COLOR "#FFFFD7"
121 #define WHITE_PIECE_COLOR "#FFFFD7"
122 #define LIGHT_SQUARE_COLOR "#EBDFB0"
123 #define DARK_SQUARE_COLOR "#EBDFB0"
124 #define MAIN_FONT "-*-helvetica-medium-o-normal--*-*-*-*-*-*-*-*"
125 #define COORD_FONT "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*"
126 #define DEFAULT_FONT "*font: -*-helvetica-medium-r-normal--*-120-*-*-*-*-*-*"
127 #define BLINK_COUNT 3
128 #define BORDER_X_OFFSET 3
129 #define BORDER_Y_OFFSET 27
140 BeginningOfGame
, MachinePlaysBlack
, MachinePlaysWhite
, TwoMachinesPlay
,
141 ForceMoves
, PlayFromGameFile
, PauseGame
, EndOfGame
,
147 MatchFalse
, MatchInit
, MatchPosition
, MatchOpening
152 BlackPawn
, BlackLance
, BlackKnight
, BlackSilver
, BlackGold
,
153 BlackBishop
, BlackRook
, BlackPPawn
, BlackPLance
, BlackPKnight
,
154 BlackPSilver
, BlackPBishop
, BlackPRook
, BlackKing
,
155 WhitePawn
, WhiteLance
, WhiteKnight
, WhiteSilver
, WhiteGold
,
156 WhiteBishop
, WhiteRook
, WhitePPawn
, WhitePLance
, WhitePKnight
,
157 WhitePSilver
, WhitePBishop
, WhitePRook
, WhiteKing
,
159 ClearBoard
, BlackPlay
, WhitePlay
/* for use on EditPosition menus */
162 typedef ShogiSquare Board
[BOARD_SIZE
][BOARD_SIZE
];
164 typedef int Catched
[2][8];
168 BlackPromotion
= 1, WhitePromotion
, BlackDrop
, WhiteDrop
,
170 BlackWins
, WhiteWins
, GameIsDrawn
, StartGame
, BadMove
, Comment
,
176 ResetTimers
, DecrementTimers
, SwitchTimers
,
177 ReDisplayTimers
, StopTimers
, StartTimers
180 #endif /* _XSHOGI_H_ */