#include #include #define LIGHT_OFF 0u #define POTENTIAL_MOVE 1u #define POTENTIAL_TAKE 2u #define SUGGESTED_MOVE 3u #define ERROR_MOVE 4u #define PIECE_ORIGIN 5u #define PIECE_NEEDS_TO_BE_HERE 6u #define POTENTIAL_CASTLE 7u #define PIECE_NEEDS_TO_BE_REMOVED 8u #define PAWN_WHITE 0u #define PAWN_BLACK 1u #define KING_WHITE 2u #define KING_BLACK 3u #define ROOK_WHITE 4u #define ROOK_BLACK 5u #define KNIGHT_WHITE 6u #define KNIGHT_BLACK 7u #define BISHOP_WHITE 8u #define BISHOP_BLACK 9u #define QUEEN_WHITE 10u #define QUEEN_BLACK 11u #define SQUARE_EMPTY 12u #define GAME_STATE_IDLE 0u #define GAME_STATE_P1_TURN_BEGINING 1u #define GAME_STATE_P1_TURN_IN_PROGRESS 2u #define GAME_STATE_P1_TURN_TAKING 3u #define GAME_STATE_P2_TURN_BEGINING 4u #define GAME_STATE_P2_TURN_IN_PROGRESS 5u #define GAME_STATE_P2_TURN_TAKING 6u #define GAME_STATE_ERROR_DETECTED 7u void chess_board_init(void); void Board_Changed(uint8_t current_binary_board[12]); void Board_get_lights_and_state(uint8_t board_lights[12][8], uint8_t board_state[12][8]);