From ac470ca08044600329efd8c05c74fa067e2770b2 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Wed, 18 Mar 2026 14:10:34 +0000 Subject: [PATCH] simulation: extract constants out to base.h from simulation_draw --- src/base.h | 8 ++++++++ src/simulation.c | 18 ++++++------------ src/simulation.h | 2 -- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/base.h b/src/base.h index 9fe97db..ec0313f 100644 --- a/src/base.h +++ b/src/base.h @@ -39,6 +39,14 @@ typedef double f64; #define NUM_PROGRAMS_POW_2 10 #define NUM_PROGRAMS (1 << NUM_PROGRAMS_POW_2) +#define SIMULATION_SIZE (NUM_PROGRAMS * SIZEOF_PROGRAM) +#define PROGRAM_ROW_SIZE (1 << (SIZEOF_PROGRAM_POW_2 / 2)) +#define SIMULATION_ROW_SIZE (1 << (NUM_PROGRAMS_POW_2 / 2)) + +#define CELL_ROW_SIZE (PROGRAM_ROW_SIZE * SIMULATION_ROW_SIZE) +#define CELL_WIDTH (WIDTH / (f64)CELL_ROW_SIZE) +#define CELL_HEIGHT (HEIGHT / (f64)CELL_ROW_SIZE) + #define MUTATION_CHANCE 5000 #define MUTATION_OFFSET 1 diff --git a/src/simulation.c b/src/simulation.c index 5e00bb4..e81d554 100644 --- a/src/simulation.c +++ b/src/simulation.c @@ -75,22 +75,16 @@ Color simulation_cell_color(const bf_token cell) void simulation_draw(simulation_t *sim) { - const u64 PROGRAM_ROW = (1 << (SIZEOF_PROGRAM_POW_2 / 2)); - const u64 SIMULATION_ROW = (1 << (NUM_PROGRAMS_POW_2 / 2)); - const u64 ROW_NUM_CELLS = (PROGRAM_ROW * SIMULATION_ROW); - const f64 CELL_WIDTH = WIDTH / (f64)ROW_NUM_CELLS; - const f64 CELL_HEIGHT = HEIGHT / (f64)ROW_NUM_CELLS; - for (size_t i = 0; i < NUM_PROGRAMS; ++i) { const bf_token *base = sim->memory + (i * SIZEOF_PROGRAM); - u64 s_x = (i % SIMULATION_ROW) * PROGRAM_ROW; - u64 s_y = (i / SIMULATION_ROW) * PROGRAM_ROW; + u64 s_x = (i % SIMULATION_ROW_SIZE) * PROGRAM_ROW_SIZE; + u64 s_y = (i / SIMULATION_ROW_SIZE) * PROGRAM_ROW_SIZE; for (u64 j = 0; j < SIZEOF_PROGRAM; ++j) { - u64 p_x = j % PROGRAM_ROW; - u64 p_y = j / PROGRAM_ROW; + u64 p_x = j % PROGRAM_ROW_SIZE; + u64 p_y = j / PROGRAM_ROW_SIZE; p_x += s_x; p_y += s_y; @@ -104,8 +98,8 @@ void simulation_draw(simulation_t *sim) DrawRectangleLinesEx((Rectangle){.x = s_x * CELL_WIDTH, .y = s_y * CELL_HEIGHT, - .width = CELL_WIDTH * SIMULATION_ROW, - .height = CELL_HEIGHT * SIMULATION_ROW}, + .width = CELL_WIDTH * PROGRAM_ROW_SIZE, + .height = CELL_HEIGHT * PROGRAM_ROW_SIZE}, 1, DARKGRAY); } } diff --git a/src/simulation.h b/src/simulation.h index 7dc483e..9ca2f1c 100644 --- a/src/simulation.h +++ b/src/simulation.h @@ -9,8 +9,6 @@ #include "bf.h" -#define SIMULATION_SIZE (NUM_PROGRAMS * SIZEOF_PROGRAM) - typedef struct { bf_token memory[SIMULATION_SIZE];