diff options
Diffstat (limited to 'FICS/movecheck.h')
-rw-r--r-- | FICS/movecheck.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/FICS/movecheck.h b/FICS/movecheck.h new file mode 100644 index 0000000..53a1712 --- /dev/null +++ b/FICS/movecheck.h @@ -0,0 +1,61 @@ +/* movecheck.h + * + */ + +/* + fics - An internet chess server. + Copyright (C) 1993 Richard V. Nash + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. +*/ + +/* Revision history: + name email yy/mm/dd Change + Richard Nash 93/10/22 Created +*/ + +#ifndef _MOVECHECK_H +#define _MOVECHECK_H + +#define MOVE_OK 0 +#define MOVE_ILLEGAL 1 +#define MOVE_STALEMATE 2 +#define MOVE_CHECKMATE 3 +#define MOVE_AMBIGUOUS 4 +#define MOVE_NOMATERIAL 5 + +#define MS_NOTMOVE 0 +#define MS_COMP 1 +#define MS_COMPDASH 2 +#define MS_ALG 3 +#define MS_KCASTLE 4 +#define MS_QCASTLE 5 + +#define isrank(c) (((c) <= '8') && ((c) >= '1')) +#define isfile(c) (((c) >= 'a') && ((c) <= 'h')) + +#if !defined(_BOARD_H) +#include "board.h" +#endif + +extern int is_move(char *); +extern int parse_move(char *, game_state_t *, move_t *, int); +extern int execute_move(game_state_t *, move_t *, int); +extern int backup_move(int, int); + +/* Some useful chess utilities */ +extern int NextPieceLoop(board_t, int *, int *, int); +extern int InitPieceLoop(board_t, int *, int *, int); +extern int legal_move(game_state_t *, int, int, int, int); +extern int legal_andcheck_move(game_state_t *, int, int, int, int); +extern int in_check(game_state_t *); + +#endif /* _MOVECHECK_H */ |