1 /* ======================================================================= */
3 /* ======================================================================= */
5 class site
: public location
7 char x
, y
, alive
, next_alive
;
8 int total_surrounding(void);
10 site(int xi
, int yi
): x(xi
), y(yi
), alive(0) { }
12 char read() { return alive
; }
13 void set(void) { alive
= 1; }
14 void clear(void) { alive
= 0; }
15 void compute_next_state(void)
17 int n
= total_surrounding();
19 if (n
< 2 || n
> 3) next_alive
= 0;
20 else if (n
> 2) next_alive
= 1;
22 void step(void) { alive
= next_alive
; }