summaryrefslogtreecommitdiff
path: root/serial/src/game.c
diff options
context:
space:
mode:
authorLogan Hunt <loganhunt@simponic.xyz>2021-12-08 01:50:12 -0700
committerLogan Hunt <loganhunt@simponic.xyz>2021-12-08 01:50:12 -0700
commitc846568cf28b4d128cf893dc0abb6ccb5ccdcc32 (patch)
tree01ad0e303ea59103f2af9b9aa007785b88fa80ca /serial/src/game.c
parent253b267f1cee377a834860fb4deac54ef9a78b7a (diff)
downloadgol-c846568cf28b4d128cf893dc0abb6ccb5ccdcc32.tar.gz
gol-c846568cf28b4d128cf893dc0abb6ccb5ccdcc32.zip
Timing study
Diffstat (limited to 'serial/src/game.c')
-rw-r--r--serial/src/game.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/serial/src/game.c b/serial/src/game.c
index 2921e3c..ebaab1b 100644
--- a/serial/src/game.c
+++ b/serial/src/game.c
@@ -1,5 +1,6 @@
#include "game.h"
+// Calculate the number of live neighbors a cell has
int neighbors(struct GAME* game, int x, int y) {
int n = 0;
for (int dy = -1; dy <= 1; dy++) {
@@ -15,6 +16,7 @@ int neighbors(struct GAME* game, int x, int y) {
return n;
}
+// Compute the next iteration of a board
void next(struct GAME* game) {
unsigned char** newGrid = malloc(sizeof(unsigned char*) * (game->height+(game->padding*2)));
int size = sizeof(unsigned char) * (game->width+(game->padding*2));
@@ -23,6 +25,7 @@ void next(struct GAME* game) {
memset(newGrid[y], 0, size);
}
+ // Iterate through each cell
for (int y = 0; y < game->height+(game->padding*2); y++) {
for (int x = 0; x < game->width+(game->padding*2); x++) {
int my_neighbors = neighbors(game, x, y);
@@ -44,6 +47,7 @@ void next(struct GAME* game) {
game->grid = newGrid;
}
+// Randomly assign life value to each cell
void randomize(struct GAME* game) {
for (int y = game->padding; y < game->height+game->padding; y++) {
for (int x = game->padding; x < game->width+game->padding; x++) {