From 9e926c41c05daae9dd8e6e4af20131d55cf2de03 Mon Sep 17 00:00:00 2001 From: tslil Date: Wed, 30 Dec 2020 17:56:22 -0500 Subject: Added linenoise library, uninitialised variable + renaming --- include/tak.c | 69 ++++++++++++++++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 34 deletions(-) (limited to 'include/tak.c') diff --git a/include/tak.c b/include/tak.c index 6059794..1970fca 100644 --- a/include/tak.c +++ b/include/tak.c @@ -58,27 +58,27 @@ try_place(const int8_t location, const enum COLOUR colour, { // Can't place on an occupied square if (COUNT_AT(location)) { - return A_ILLEGAL; + return ACT_ILLEGAL; } else { switch (stone) { case STONE_STANDING: ; case STONE_FLAT: { if (colour == C_BLACK) { if (black_flats) black_flats--; - else return A_ILLEGAL; + else return ACT_ILLEGAL; } else { if (white_flats) white_flats--; - else return A_ILLEGAL; + else return ACT_ILLEGAL; } break; } case STONE_CAPSTONE: { if (colour == C_BLACK) { if (black_caps) black_caps--; - else return A_ILLEGAL; + else return ACT_ILLEGAL; } else { if (white_caps) white_caps--; - else return A_ILLEGAL; + else return ACT_ILLEGAL; } break; } @@ -86,7 +86,7 @@ try_place(const int8_t location, const enum COLOUR colour, colours[location] = colour; celldat[location] = NUM_INC | stone; - return A_OK; + return ACT_OK; } } @@ -112,30 +112,31 @@ enum E_RESULT try_move(const int8_t location, const enum MOVE_DIRECTION direction, const uint8_t steps, const uint8_t drops[5]) { // Can't do this - if (steps == 0 || steps > 5) return A_ILLEGAL; + if (steps == 0 || steps > 5) return ACT_ILLEGAL; int8_t delta; // Is the desired direction and count on the board? switch (direction) { case M_UP: { delta = +board_size; - if (location + delta * steps > board_size * board_size) return A_ILLEGAL; - else break; + if (location + delta * steps > board_size * board_size) return ACT_ILLEGAL; + break; }; case M_DOWN: { delta = -board_size; - if (location + delta * steps < 0) return A_ILLEGAL; - else break; + if (location + delta * steps < 0) return ACT_ILLEGAL; + break; }; case M_RIGHT: { delta = +1; - if (location + delta * steps > board_size * board_size) return A_ILLEGAL; - else break; + if (location + delta * steps > board_size * board_size) return ACT_ILLEGAL; + break; }; + default: // Why do i need this to satisfy GCC? case M_LEFT: { delta = -1; - if (location + delta * steps < 0) return A_ILLEGAL; - else break; + if (location + delta * steps < 0) return ACT_ILLEGAL; + break; }; }; @@ -144,16 +145,16 @@ try_move(const int8_t location, const enum MOVE_DIRECTION direction, for (uint8_t k = 0; k < steps; k++) { // Can't drop 0 anywhere because we're past the first square if (drops[k] == 0) - return A_ILLEGAL; + return ACT_ILLEGAL; // Can't drop more than BOARD_SIZE stones in a square if (drops[k] > board_size) - return A_ILLEGAL; + return ACT_ILLEGAL; // Check for overflows if (COUNT_AT(location+(k+1)*delta) + drops[k] > 0x0F) - return A_OVERFLOW; + return ACT_OVERFLOW; // Check for capstone if (STONE_AT(location+(k+1)*delta) == STONE_CAPSTONE) - return A_ILLEGAL; + return ACT_ILLEGAL; // Check for wall if ( (STONE_AT(location+(k+1)*delta) == STONE_STANDING) // If not last drop, or not dropping just one, or not a cap @@ -161,13 +162,13 @@ try_move(const int8_t location, const enum MOVE_DIRECTION direction, || (drops[k] != 1) || (STONE_AT(location) != STONE_CAPSTONE) ) ) - return A_ILLEGAL; + return ACT_ILLEGAL; total += drops[k]; } // Can't ask to move more than BOARD_SIZE or stones available if ( (total > board_size) || (total > COUNT_AT(location)) ) - return A_ILLEGAL; + return ACT_ILLEGAL; // Nothing illegal, do it uint8_t j = total; @@ -181,7 +182,7 @@ try_move(const int8_t location, const enum MOVE_DIRECTION direction, drop_stones(location, total); - return A_OK; + return ACT_OK; } // ------------------------------------------------------------------- @@ -189,7 +190,7 @@ try_move(const int8_t location, const enum MOVE_DIRECTION direction, static uint8_t board_full(void) { - for (uint8_t k; k < board_size*board_size; k++) { + for (uint8_t k = 0; k < board_size*board_size; k++) { if (COUNT_AT(k) == 0) return 0; } return 1; @@ -247,7 +248,7 @@ check_road_colour(const enum COLOUR colour) { // colour COLOUR. const enum E_RESULT winner = - (colour == C_BLACK) ? W_ROAD_BLACK : W_ROAD_WHITE; + (colour == C_BLACK) ? WIN_ROAD_BLACK : WIN_ROAD_WHITE; // First left-to-right for (uint8_t y=0; y 0) { - return W_FLAT_BLACK; + return WIN_FLAT_BLACK; } else if (total < 0) { - return W_FLAT_WHITE; + return WIN_FLAT_WHITE; } else { - return W_DRAW; + return WIN_DRAW; } } @@ -303,11 +304,11 @@ check_win(void) { rb = check_road_colour(C_BLACK); rw = check_road_colour(C_WHITE); - if (rb == W_ROAD_BLACK) { - if (rw == W_ROAD_WHITE) { - return W_DRAGON; + if (rb == WIN_ROAD_BLACK) { + if (rw == WIN_ROAD_WHITE) { + return WIN_DRAGON; } else { - return W_ROAD_BLACK; + return WIN_ROAD_BLACK; } } else { return rw; @@ -496,7 +497,7 @@ do_ptn(char *ptn) { res = parse_move(board_size, ptn, &location, &direction, &steps, drops); if (res == PTN_VALID) { - if (turn < 2) return A_ILLEGAL; + if (turn < 2) return ACT_ILLEGAL; res = try_move(location, direction, steps, drops); } } else { @@ -506,7 +507,7 @@ do_ptn(char *ptn) { res = try_place(location, current_colour, stone); } - if (res == A_OK) { + if (res == ACT_OK) { next_turn(); if (turn > 1) return check_win(); } -- cgit v1.3.1