refact: day 13

This commit is contained in:
timeshifter
2026-07-01 20:49:23 +02:00
parent 901ebbba71
commit e28ff1dd22
+10 -25
View File
@@ -73,31 +73,16 @@ fn get_valid_neighbors(
maze: &[Vec<WallOrSpace>],
(x, y): (usize, usize),
) -> impl Iterator<Item = (usize, usize)> {
let mut result = vec![];
if x == 0 && y == 0 {
result.push((x + 1, y));
result.push((x, y + 1));
} else if x == 0 && y != 0 {
result.push((x + 1, y));
result.push((x, y - 1));
result.push((x, y + 1));
} else if x != 0 && y == 0 {
result.push((x - 1, y));
result.push((x + 1, y));
result.push((x, y + 1));
} else {
// x != 0 && y != 0
result.push((x - 1, y));
result.push((x + 1, y));
result.push((x, y - 1));
result.push((x, y + 1));
}
result
.into_iter()
.filter(|(x, y)| *x < MAX_X && *y < MAX_Y)
.filter(|(x, y)| maze[*x][*y].is_space())
[
x.checked_sub(1).map(|x| (x, y)),
Some((x + 1, y)),
y.checked_sub(1).map(|y| (x, y)),
Some((x, y + 1)),
]
.into_iter()
.flatten()
.filter(|(x, y)| *x < MAX_X && *y < MAX_Y)
.filter(|(x, y)| maze[*x][*y].is_space())
}
fn calculate_equation(x: usize, y: usize) -> usize {