#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 _initial_setup(b); } int board_delete(Board* b) { int i; for (i = 0; i < SIZE; i++) free(b[i]); free(b); return 0; }