memset(board->goal, 0, sizeof board->goal);
for (i = 0; i < 9; i++) {
- uint_fast32_t position = board_position(i/3+1, i%3+1);
-
- if (tiles[i] & 1)
- board->goal[0] |= position >> 6;
- if (tiles[i] & 2)
- board->goal[1] |= position >> 6;
- if (tiles[i] & 4)
- board->goal[2] |= position >> 6;
+ uint_fast32_t position = board_position(i/3+1, i%3+1) >> 6;
+
+ if (tiles[i] & 1) board->goal[0] |= position;
+ if (tiles[i] & 2) board->goal[1] |= position;
+ if (tiles[i] & 4) board->goal[2] |= position;
}
tiles[24] = TILE_EMPTY;
shuffle(tiles, 25);
- memset(board->game, 0, sizeof board->game);
+ memset(board->game, 0, sizeof board->game);
for (i = 0; i < 25; i++) {
unsigned x = i/5, y = i%5;
uint_fast32_t position;
position = board_position(x, y);
if (tiles[i] != TILE_EMPTY) {
- if (tiles[i] & 1)
- board->game[0] |= position;
- if (tiles[i] & 2)
- board->game[1] |= position;
- if (tiles[i] & 4)
- board->game[2] |= position;
+ if (tiles[i] & 1) board->game[0] |= position;
+ if (tiles[i] & 2) board->game[1] |= position;
+ if (tiles[i] & 4) board->game[2] |= position;
} else {
- board->game[3] = 0x1ffffff ^ position;
+ board->game[3] = ~position;
board->x = x;
board->y = y;
}
return 0;
}
-#define GOAL_MASK 0x739c0
-
int game_check_goal(struct board *board)
{
int i, ret = 1;