return (board_left(x2-x1) << x1) & (board_above(y2-y1) << 5*y1);
}
+/*
+ * Extract the tile colour from a specific position of one of the
+ * arrays of tile bitmaps. The position is a bit index. So for
+ * example, game the tile at a given (x, y) position can be extracted
+ * by board_tile(board.game, 5*y+x).
+ */
+#define board_tile(planes, bit) (((0[planes]<<0) >> (bit)) & 1) \
+ | (((1[planes]<<1) >> (bit)) & 2) \
+ | (((2[planes]<<2) >> (bit)) & 4)
+
/*
* Move the bits in the game bitmaps according to a move at position (x, y),
* and update the location of the empty position which, if the move was valid