+typedef struct game_grid game_grid;
+struct game_grid {
+ int refcount;
+ struct grid_square *squares;
+ int nsquares;
+};
+
+#define SET_SQUARE(state, i, val) \
+ ((state)->bluemask[(i)/32] &= ~(1 << ((i)%32)), \
+ (state)->bluemask[(i)/32] |= ((!!val) << ((i)%32)))
+#define GET_SQUARE(state, i) \
+ (((state)->bluemask[(i)/32] >> ((i)%32)) & 1)
+