* Main header file for GNU Shogi.
*
* ----------------------------------------------------------------------
- *
- * Copyright (c) 2012 Free Software Foundation
+ * Copyright (c) 1993, 1994, 1995 Matthias Mutz
+ * Copyright (c) 1999 Michael Vanier and the Free Software Foundation
*
* GNU SHOGI is based on GNU CHESS
*
+ * Copyright (c) 1988, 1989, 1990 John Stanback
+ * Copyright (c) 1992 Free Software Foundation
+ *
* This file is part of GNU SHOGI.
*
* GNU Shogi is free software; you can redistribute it and/or modify it
* Display options.
*/
-typedef enum { DISPLAY_RAW, DISPLAY_CURSES, DISPLAY_X } display_t;
+typedef enum {
+ DISPLAY_RAW,
+#ifdef HAVE_LIBCURSES
+ DISPLAY_CURSES,
+#endif
+ DISPLAY_X
+} display_t;
extern display_t display_type;
#define XSHOGI (display_type == DISPLAY_X)
#define small_ushort unsigned char
-typedef small_short BYTE;
typedef small_ushort UBYTE;
typedef short SHORT;
typedef unsigned short USHORT;
#include <sys/param.h>
#include <sys/types.h>
-#include <sys/times.h>
-#include <sys/ioctl.h>
-
+#ifdef WIN32
+# include <windows.h>
+#else
+ typedef small_short BYTE;
+# include <sys/times.h>
+# include <sys/ioctl.h>
+#endif
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
#define NO_PIECES 15
#define MAX_CAPTURED 19
#define NO_PTYPE_PIECES 15
-#define NO_SQUARES 81
-#define NO_SQUARES_1 80
#define NO_COLS 9
#define NO_ROWS 9
+#define NO_SQUARES (NO_COLS*NO_ROWS)
+
+#define ROW_NAME(n) ('a' + NO_ROWS - 1 - n)
+#define COL_NAME(n) ('1' + NO_COLS - 1 - n)
#if defined HASHFILE || defined CACHE
# define PTBLBDSIZE (NO_SQUARES + NO_PIECES)
#endif
-#include "dspwrappers.h" /* Display functions. */
#include "eval.h"
#define SCORE_LIMIT 12000
king
};
+/* move types */
enum {
ptype_no_piece = 0,
ptype_pawn = 0,
#endif
/* move symbols */
-#define pxx (CP[2])
-#define qxx (CP[1])
-#define rxx (CP[4])
-#define cxx (CP[3])
+#define pxx (" PLNSGBRPLNSBRK ")
+#define qxx (" plnsgbrplnsbrk ")
+#define rxx ("ihgfedcba")
+#define cxx ("987654321")
/***************** Table limits ********************************************/
extern small_short ChkFlag[], CptrFlag[], TesujiFlag[];
extern short Pscore[], Tscore[];
extern /*unsigned*/ short rehash; /* -1 is used as a flag --tpm */
-extern char version[], patchlevel[];
extern unsigned int ttbllimit;
extern unsigned int TTadd;
extern unsigned int ttblsize;
extern hashcode_array *hashcode;
extern drop_hashcode_array *drop_hashcode;
-extern char *CP[];
#ifdef QUIETBACKGROUND
extern short background;
extern short rpthash[2][256];
extern char *DRAW;
-/*
- * FIXME: these should be more generic instead of using the
- * magic number 9.
- */
+extern char* DRAW_REPETITION;
+extern char *DRAW_MAXMOVES;
+extern char *DRAW_JUSTDRAW;
-#define row(a) ((a) / 9)
-#define column(a) ((a) % 9)
-#define locn(a, b) (((a) * 9) + b)
+#define row(a) ((a) / NO_COLS)
+#define column(a) ((a) % NO_COLS)
+#define locn(a, b) (((a) * NO_COLS) + b)
/* init external functions */
extern void InitConst(char *lang); /* init.c */
#endif
} ElapsedTime_mode;
-extern void ElapsedTime(ElapsedTime_mode iop);
extern void SetResponseTime(short side);
extern void CheckForTimeout(int score, int globalscore,
int Jscore, int zwndw);
extern void ShowDepth(char ch);
extern void TerminateSearch(int);
extern void ShowResults(short score, unsigned short *bstline, char ch);
-extern void PromptForMove(void);
extern void SetupBoard(void);
extern void algbr(short f, short t, short flag);
extern void OutputMove(void);
extern void ListGame(void);
extern void ShowMessage(char *s);
extern void ClearScreen(void);
-extern void gotoXY(short x, short y);
-extern void ClearEoln(void);
-extern void DrawPiece(short sq);
-extern void UpdateClocks(void);
extern void DoDebug(void);
extern void DoTable(short table[NO_SQUARES]);
extern void ShowPostnValues(void);
extern int pick(short p1, short p2);
extern short repetition(void);
extern void TimeCalc(void);
+extern void ElapsedTime(ElapsedTime_mode iop);
extern short
DropPossible(short piece, short side, short sq); /* genmoves.c */
extern int VerifyMove(char *s, VerifyMove_mode iop, unsigned short *mv);
extern unsigned short TTage;
+#include "dspwrappers.h" /* Display functions. */
+
#endif /* _GNUSHOGI_H_ */