- unsigned char n_live_adj;
- for (int i = state->min_x; i < state->max_x; ++i) {
- for (int j = state->min_y; j < state->max_y; ++j) {
- n_live_adj = gol_is_live(state, i - 1, j - 1) +
- gol_is_live(state, i, j - 1) +
- gol_is_live(state, i + 1, j - 1) +
- gol_is_live(state, i - 1, j) +
- gol_is_live(state, i + 1, j) +
- gol_is_live(state, i - 1 , j + 1) +
- gol_is_live(state, i, j + 1) +
- gol_is_live(state, i + 1, j + 1);
-
+
+ for (i = state->min_x - 1; i <= state->max_x + 1; ++i) {
+ for (j = state->min_y - 1; j <= state->max_y + 1; ++j) {
+ n_live_adj = 0;
+ gol_is_live(state, i - 1, j - 1, &is_live);
+ n_live_adj += is_live;
+ gol_is_live(state, i, j - 1, &is_live);
+ n_live_adj += is_live;
+ gol_is_live(state, i + 1, j - 1, &is_live);
+ n_live_adj += is_live;
+ gol_is_live(state, i - 1, j, &is_live);
+ n_live_adj += is_live;
+ gol_is_live(state, i + 1, j, &is_live);
+ n_live_adj += is_live;
+ gol_is_live(state, i - 1 , j + 1, &is_live);
+ n_live_adj += is_live;
+ gol_is_live(state, i, j + 1, &is_live);
+ n_live_adj += is_live;
+ gol_is_live(state, i + 1, j + 1, &is_live);
+ n_live_adj += is_live;
+