Added skeleton for assignment1 (2018)
This commit is contained in:
parent
91bb9d5532
commit
2b21c9d23c
2 changed files with 62 additions and 0 deletions
BIN
assignment1-18/assignment1.pdf
Normal file
BIN
assignment1-18/assignment1.pdf
Normal file
Binary file not shown.
62
assignment1-18/chessboard.h
Normal file
62
assignment1-18/chessboard.h
Normal 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
|
Reference in a new issue