Solve maze after generation

This commit is contained in:
Camden Dixie O'Brien 2024-11-04 00:06:21 +00:00
parent f4aa1bc01c
commit f19881fd04

17
main.c
View File

@ -144,6 +144,18 @@ static bool generation_visit(vec2_t c, vec2_t im)
return false; return false;
} }
static bool accessible_and_unvisited(vec2_t c, vec2_t im)
{
return maze[im.x][im.y].is_path && !maze[c.x][c.y].visited;
}
static bool solve_visit(vec2_t c, vec2_t im)
{
maze[c.x][c.y].visited = true;
maze[im.x][im.y].visited = true;
return GOAL == c.x && GOAL == c.y;
}
int main(void) int main(void)
{ {
// Seed random number generation from time // Seed random number generation from time
@ -187,6 +199,11 @@ int main(void)
maze[GOAL][GOAL].is_path = true; maze[GOAL][GOAL].is_path = true;
random_walk(is_wall, generation_visit, gen_start); random_walk(is_wall, generation_visit, gen_start);
// Solve
const vec2_t solve_start = { 0, 0 };
maze[0][0].visited = true;
random_walk(accessible_and_unvisited, solve_visit, solve_start);
// Wait for window exit // Wait for window exit
bool is_del = false; bool is_del = false;
do { do {