mirror of
https://codeberg.org/emilwilliams/life
synced 2024-11-21 19:44:21 -05:00
README.md and well defined defaults
This commit is contained in:
parent
55c146c927
commit
f1d4d8bcf9
10
README.md
Normal file
10
README.md
Normal file
@ -0,0 +1,10 @@
|
||||
# Conway's Game Of Life
|
||||
|
||||
An implementation in C.
|
||||
|
||||
Usage: ./life [GRID SIZE=20] [WAIT BETWEEN EACH STEP=4] [MAX STEP=-1]
|
||||
|
||||
WAIT is written as 1e6 / WAIT, which we wait as a fraction of a second.
|
||||
|
||||
I will one day write a good frontend for the CLI, along with proper
|
||||
logging, and readin and readout of RLE, and maybe more.
|
36
life.c
36
life.c
@ -9,6 +9,25 @@
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* defaults */
|
||||
|
||||
#define DEFAULT_GRID_SIZE "20"
|
||||
#define DEFAULT_WAIT 4
|
||||
#define DEFAULT_MAX_STEP -1
|
||||
|
||||
/* symbols used */
|
||||
|
||||
char symbol [] = " O.";
|
||||
|
||||
/* ... */
|
||||
|
||||
/* maps to symbol */
|
||||
enum {
|
||||
LIFE_NONE,
|
||||
LIFE_ALIVE,
|
||||
LIFE_DEAD
|
||||
};
|
||||
|
||||
#define DELC static inline
|
||||
|
||||
/* nearness mask, life mask */
|
||||
@ -17,14 +36,6 @@
|
||||
/* life nearness function */
|
||||
#define life_near life_near_lim
|
||||
|
||||
enum {
|
||||
LIFE_NONE,
|
||||
LIFE_ALIVE,
|
||||
LIFE_DEAD
|
||||
};
|
||||
|
||||
char symbol [] = " O.";
|
||||
|
||||
/* tty */
|
||||
|
||||
#define CSI "\033["
|
||||
@ -229,18 +240,19 @@ int main (int argc, char ** argv) {
|
||||
if ( argc >= 2
|
||||
&& (strcmp (argv [1], "-h") == 0
|
||||
|| strcmp (argv [1], "--help") == 0)) {
|
||||
printf ("%s [GRID SIZE] [WAIT BETWEEN EACH STEP=4] [MAX STEP=-1]\n", argv [0]);
|
||||
printf ("%s [GRID SIZE=%s] [WAIT BETWEEN EACH STEP=%d] [MAX STEP=-%d]\n",
|
||||
argv [0], DEFAULT_GRID_SIZE, DEFAULT_WAIT, DEFAULT_MAX_STEP);
|
||||
return 1;
|
||||
}
|
||||
|
||||
char * rect = argc >= 2 ? argv [1] : "20";
|
||||
char * rect = argc >= 2 ? argv [1] : DEFAULT_GRID_SIZE;
|
||||
board_t * b = board_alloc_text (rect);
|
||||
|
||||
board_randomize (b, 5);
|
||||
board_eq_filter (b, 1);
|
||||
|
||||
int wait = argc >= 3 ? atoi (argv [2]) : 4;
|
||||
int step = argc >= 4 ? atoi (argv [3]) : -1;
|
||||
int wait = argc >= 3 ? atoi (argv [2]) : DEFAULT_WAIT;
|
||||
int step = argc >= 4 ? atoi (argv [3]) : DEFAULT_MAX_STEP;
|
||||
|
||||
#ifndef NDEBUG
|
||||
life_debug_near (b, 0, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user