From 27c0576e25226dc75636c372aff3c0818af03201 Mon Sep 17 00:00:00 2001 From: tslil Date: Thu, 7 Jan 2021 16:49:20 -0500 Subject: Check for road wins before flat wins --- include/tak.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'include') diff --git a/include/tak.c b/include/tak.c index 5551e5b..1d29694 100644 --- a/include/tak.c +++ b/include/tak.c @@ -308,6 +308,20 @@ check_road_colour(const enum COLOUR colour) { enum WIN_TYPE check_win(void) { + // Road? + enum WIN_TYPE rb, rw; + rb = check_road_colour(C_BLACK); + rw = check_road_colour(C_WHITE); + + if (rb == WIN_ROAD_BLACK) { + if (rw == WIN_ROAD_WHITE) { + return WIN_DRAGON; + } else { + return WIN_ROAD_BLACK; + } + } else { + return rw; + } int8_t total = 0, board_full = 1; for (uint8_t k = 0; k < NUM_SQUARES; k++) { @@ -325,21 +339,6 @@ check_win(void) { else if (total < 0) return WIN_FLAT_WHITE; else return WIN_DRAW; } - - // Road? - enum WIN_TYPE rb, rw; - rb = check_road_colour(C_BLACK); - rw = check_road_colour(C_WHITE); - - if (rb == WIN_ROAD_BLACK) { - if (rw == WIN_ROAD_WHITE) { - return WIN_DRAGON; - } else { - return WIN_ROAD_BLACK; - } - } else { - return rw; - } } // =================================================================== // PTN place parser -- cgit v1.2.3