From e7497d2dde46b8fae5493c127f4dc33307a65da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Benencia?= Date: Fri, 27 Mar 2015 11:19:16 -0300 Subject: initial commit --- lib/board.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 lib/board.c (limited to 'lib/board.c') diff --git a/lib/board.c b/lib/board.c new file mode 100644 index 0000000..6543bcc --- /dev/null +++ b/lib/board.c @@ -0,0 +1,80 @@ +#include +#include + +#include "board.h" + +Board* _setup_colors(Board *b) { + int i, j; + + for (i = 0; i < SIZE; i++) + for (j = 0; j < SIZE; j++) + if (i % 2) // Odd rows start with white + if (j % 2) + b[i][j]->color = WHITE; + else + b[i][j]->color = BLACK; + else + if (j % 2) + b[i][j]->color = BLACK; + else + b[i][j]->color = WHITE; + + return b; +} + +Board* _pawns(Board *b) { + return b; +} + +Board* _rocks(Board *b) { + return b; +} + +Board* _knights(Board *b) { + return b; +} + +Board* _bishops(Board *b) { + return b; +} + +Board* _queens(Board *b) { + return b; +} + +Board* _kings(Board *b) { + return b; +} + +Board* _setup_pieces(Board *b) { + return _pawns(_rocks(_knights(_bishops(_queens(_kings(b)))))); // :-) +} + +Board* _initial_setup(Board *b) { + return _setup_pieces(_setup_colors(b)); +} + +Board board_init() { + int i, j; + + Board b = malloc(sizeof(Square*) * SIZE); + + for (i = 0; i < SIZE; i++) { + b[i] = malloc(sizeof(Square) * SIZE); + for (j = 0; j < SIZE; j++) + b[i][j].piece = NULL; + } + + return b; +} + +int board_delete(Board* b) { + int i; + + for (i = 0; i < SIZE; i++) + free(b[i]); + + free(b); + + return 0; +} -- cgit v1.2.3