From 9ac7c4885f2ab4af3f8d9c929a5296ed9384b6f9 Mon Sep 17 00:00:00 2001 From: Jan Grewe <jan@faked.org> Date: Sat, 17 Jun 2023 03:43:39 +0200 Subject: [PATCH] fix cell count --- src/gameoflife.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/gameoflife.cpp b/src/gameoflife.cpp index 297c6ee..3fc18d2 100644 --- a/src/gameoflife.cpp +++ b/src/gameoflife.cpp @@ -66,10 +66,10 @@ void gameTick(bool (&a)[SCREEN_HEIGHT][SCREEN_WIDTH]) for (uint8_t col = 0; col < SCREEN_WIDTH; col++) { uint8_t neighbors = (a[row][(col - 1) % SCREEN_WIDTH] + a[row][(col + 1) % SCREEN_WIDTH] + a[(row - 1) % SCREEN_HEIGHT][col] + - a[(row + 1) % SCREEN_HEIGHT][col] + a[(row - 1) % SCREEN_HEIGHT][(col - 1) % SCREEN_WIDTH] + - a[(row - 1) % SCREEN_HEIGHT][(col + 1) % SCREEN_WIDTH] + - a[(row + 1) % SCREEN_HEIGHT][(col - 1) % SCREEN_WIDTH] + - a[(row + 1) % SCREEN_HEIGHT][(col + 1) % SCREEN_WIDTH]); + a[(row + 1) % SCREEN_HEIGHT][col] + a[(row - 1) % SCREEN_HEIGHT][(col - 1) % SCREEN_WIDTH] + + a[(row - 1) % SCREEN_HEIGHT][(col + 1) % SCREEN_WIDTH] + + a[(row + 1) % SCREEN_HEIGHT][(col - 1) % SCREEN_WIDTH] + + a[(row + 1) % SCREEN_HEIGHT][(col + 1) % SCREEN_WIDTH]); // cell was alive if (a[row][col]) @@ -83,9 +83,11 @@ void gameTick(bool (&a)[SCREEN_HEIGHT][SCREEN_WIDTH]) // else: right amount of neighbors -> stay alive else { - if (colorMap[row][col] < 255) { + if (colorMap[row][col] < 255) + { colorMap[row][col]++; } + cellsAliveNow++; } } // cell was dead, but has right amount of neighbors now -> come alive @@ -149,11 +151,6 @@ void gameLoop() else // not gameOver { - if (currentTick % 2) - { - cellsAliveBefore = cellsAliveNow; - } - if (cellsAliveNow >= cellsAliveBefore - 5 && cellsAliveNow <= cellsAliveBefore + 5) { @@ -163,6 +160,9 @@ void gameLoop() { noEvolutionTicks = 0; } + + cellsAliveBefore = cellsAliveNow; + if (noEvolutionTicks > noEvolutionTicksLimit) { -- GitLab