blob: b97574007f01a538855f053acb3b8d9a80762a34 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include "vector.h"
#ifndef CHESS_HELPERS
#define CHESS_HELPERS
typedef enum {
pawn = 1,
knight = 2,
bishop = 3,
rook = 4,
queen = 5,
king = 6,
} piece_t;
typedef struct BoardState {
int** pieces;
//only falsified by moving the king or pawn
//does not consider check or empty squares
int whiteCanCastleKingside;
int whiteCanCastleQueenside;
int blackCanCastleKingside;
int blackCanCastleQueenside;
int lastPawnMove;
} board_t;
board_t init_board(int** pieces);
board_t make_move(board_t board, vector_t origin, vector_t end);
board_t clone_board(board_t board);
int in_board(vector_t position);
int is_empty(board_t board, vector_t position);
int is_color(board_t board, vector_t position, int color);
char* get_readable_coords(vector_t position);
char* get_move_name(board_t board, vector_t origin, vector_t end);
#endif
|