34 lines
872 B
C
34 lines
872 B
C
//
|
|
// Created by dukantic on 29/09/2026.
|
|
//
|
|
|
|
#ifndef SIMULATIONRABBIT_RABBIT_HOLE_H
|
|
#define SIMULATIONRABBIT_RABBIT_HOLE_H
|
|
#include <stdint.h>
|
|
|
|
#define N_MATURE (16)
|
|
#define N_KITTEN (8)
|
|
|
|
#define CLAMP(x,y) (x >= y? y :x)
|
|
#define CLAMP_BTW(a, lo, hi) ((a) < (lo) ? (lo) : ((a) > (hi) ? (hi) : (a)))
|
|
|
|
|
|
typedef struct rabbit_hole_s {
|
|
__uint128_t male_mature[N_MATURE];
|
|
__uint128_t female_mature[N_MATURE];
|
|
__uint128_t female_litter;
|
|
__uint128_t kitten_male[N_KITTEN];
|
|
__uint128_t kitten_female[N_KITTEN];
|
|
} rabbit_hole_t;
|
|
|
|
|
|
|
|
void init_rabbits(rabbit_hole_t *rabbits);
|
|
char process_month(rabbit_hole_t *rabbits,__uint128_t *month);
|
|
void set_csv_enabled(int enabled);
|
|
void csv_header();
|
|
char print_rabbits(rabbit_hole_t *rabbits, __uint128_t *month);
|
|
char total_rabbits(rabbit_hole_t *rabbits, __uint128_t *total);
|
|
|
|
#endif //SIMULATIONRABBIT_RABBIT_HOLE_H
|