Added skeleton for assignment1 (2018)

This commit is contained in:
Claudio Maggioni 2019-08-04 14:57:10 +02:00
parent 91bb9d5532
commit 2b21c9d23c
2 changed files with 62 additions and 0 deletions

Binary file not shown.

View file

@ -0,0 +1,62 @@
#ifndef CHESSBOARD_H_INCLUDED
#define CHESSBOARD_H_INCLUDED
/* players
*/
enum player {WHITE, BLACK};
/* status return by move()
*/
enum mstatus {INVALID, VALID, CHECK, CHECK_MATE};
enum pieces {
EMPTY=0,
WHITE_PAWN=1, WHITE_KNIGHT=2, WHITE_BISHOP=3, WHITE_ROOK=4, WHITE_QUEEN=5, WHITE_KING=6,
BLACK_PAWN=7, BLACK_KNIGHT=8, BLACK_BISHOP=9, BLACK_ROOK=10, BLACK_QUEEN=11, BLACK_KING=12 };
/* UTF8 representation of the pieces, should be used to print the board
*/
const static char* utf_8_pieces[13] = {
" ", "", "", "", "", "", "", "", "", "", "", "", "" };
/* chess board with values defined in enum pieces
*/
struct chessboard {
enum pieces position[8][8];
};
/* set the initial position of the pieces on the board
*/
void init_chessboard(struct chessboard * cb);
/* print the board like this:
a b c d e f g h
8
7
6
5
4
3
2
1
a b c d e f g h
*/
void print_chessboard(struct chessboard * cb);
/* apply the move informed by player p, from/to positions and returns
* the corresponding status
*/
enum mstatus move(struct chessboard * cb, enum player p, const char * from, const char * to);
#endif