diff options
| -rw-r--r-- | include/tak.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/include/tak.c b/include/tak.c index 47a9cc6..dc402d4 100644 --- a/include/tak.c +++ b/include/tak.c @@ -231,7 +231,8 @@ dfs_road(uint8_t dfs_stack[NUM_SQUARES], uint8_t dfs_pntr, if ( ((cur % board_size) + 1 < board_size) && (COUNT_AT(cur + 1)) // wont ever be out of bounds && ((colours[cur+1] & 1) == colour) - && ((celldat[cur+1] & DFS_MASK) == 0) ) { + && ((celldat[cur+1] & DFS_MASK) == 0) + && (STONE_AT(cur+1) != STONE_STANDING)) { dfs_stack[dfs_pntr++] = cur + 1; celldat[cur+1] |= DFS_MASK; } @@ -240,7 +241,8 @@ dfs_road(uint8_t dfs_stack[NUM_SQUARES], uint8_t dfs_pntr, if ( (cur % board_size > 0) && (COUNT_AT(cur - 1)) // wont ever be out of bounds && ((colours[cur-1] & 1) == colour) - && ((celldat[cur-1] & DFS_MASK) == 0) ) { + && ((celldat[cur-1] & DFS_MASK) == 0) + && (STONE_AT(cur-1) != STONE_STANDING)) { dfs_stack[dfs_pntr++] = cur - 1; celldat[cur-1] |= DFS_MASK; } @@ -249,7 +251,8 @@ dfs_road(uint8_t dfs_stack[NUM_SQUARES], uint8_t dfs_pntr, if ( (cur + board_size < NUM_SQUARES) && (COUNT_AT(cur + board_size)) && ((colours[cur+board_size] & 1) == colour) - && ((celldat[cur+board_size] & DFS_MASK) == 0) ) { + && ((celldat[cur+board_size] & DFS_MASK) == 0) + && (STONE_AT(cur+board_size) != STONE_STANDING)) { dfs_stack[dfs_pntr++] = cur + board_size; celldat[cur+board_size] |= DFS_MASK; } @@ -258,7 +261,8 @@ dfs_road(uint8_t dfs_stack[NUM_SQUARES], uint8_t dfs_pntr, if ( (cur >= board_size) && (COUNT_AT(cur - board_size)) && ((colours[cur-board_size] & 1) == colour) - && ((celldat[cur-board_size] & DFS_MASK) == 0) ) { + && ((celldat[cur-board_size] & DFS_MASK) == 0) + && (STONE_AT(cur-board_size) != STONE_STANDING)) { dfs_stack[dfs_pntr++] = cur - board_size; celldat[cur-board_size] |= DFS_MASK; } |
