diff options
| author | tslil <tslil@posteo.de> | 2021-01-07 16:49:20 -0500 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-08-28 19:37:41 +0100 |
| commit | 27c0576e25226dc75636c372aff3c0818af03201 (patch) | |
| tree | 8670f0a66c4acaf3fa2375d68a9a9f99b3c46f60 /include/tak.c | |
| parent | 7ee86fd0ee5c6894fe8aa15b89f626220deafc63 (diff) | |
Check for road wins before flat wins
Diffstat (limited to 'include/tak.c')
| -rw-r--r-- | include/tak.c | 29 |
1 files changed, 14 insertions, 15 deletions
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 |
