summaryrefslogtreecommitdiff
path: root/include/tak.c
diff options
context:
space:
mode:
Diffstat (limited to 'include/tak.c')
-rw-r--r--include/tak.c12
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;
}