From 8c4d5838e67d62775983fb46a64813d8b6bceb28 Mon Sep 17 00:00:00 2001 From: Charlie Stanton Date: Sun, 6 Apr 2025 09:15:32 +0100 Subject: Minor bug fixes --- src/tick.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/tick.c') diff --git a/src/tick.c b/src/tick.c index 4b255df..598087a 100644 --- a/src/tick.c +++ b/src/tick.c @@ -302,30 +302,39 @@ static void tick(Game *game, Arena a) { } break; case EMPTY: - // TODO: same as multiple reds + blues = 0; if ( x > 0 && lastState->grid[x - 1 + y * GRIDWIDTH] == BLUE_RIGHT ) { - game->state.grid[x + y * GRIDWIDTH] = BLUE_RIGHT; + blues++; + blue = BLUE_RIGHT; } if ( x < GRIDWIDTH - 1 && lastState->grid[x + 1 + y * GRIDWIDTH] == BLUE_LEFT ) { - game->state.grid[x + y * GRIDWIDTH] = BLUE_LEFT; + blues++; + blue = BLUE_LEFT; } if ( y > 0 && lastState->grid[x + (y - 1) * GRIDWIDTH] == BLUE_DOWN ) { - game->state.grid[x + y * GRIDWIDTH] = BLUE_DOWN; + blues++; + blue = BLUE_DOWN; } if ( y < GRIDHEIGHT - 1 && lastState->grid[x + (y + 1) * GRIDWIDTH] == BLUE_UP ) { - game->state.grid[x + y * GRIDWIDTH] = BLUE_UP; + blues++; + blue = BLUE_UP; + } + if (blues == 1) { + game->state.grid[x + y * GRIDWIDTH] = blue; + } else if (blues >= 2) { + game->state.grid[x + y * GRIDWIDTH] = BLUE; } break; } -- cgit v1.2.3