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