refact: day 13
This commit is contained in:
+10
-25
@@ -73,31 +73,16 @@ fn get_valid_neighbors(
|
|||||||
maze: &[Vec<WallOrSpace>],
|
maze: &[Vec<WallOrSpace>],
|
||||||
(x, y): (usize, usize),
|
(x, y): (usize, usize),
|
||||||
) -> impl Iterator<Item = (usize, usize)> {
|
) -> impl Iterator<Item = (usize, usize)> {
|
||||||
let mut result = vec![];
|
[
|
||||||
|
x.checked_sub(1).map(|x| (x, y)),
|
||||||
if x == 0 && y == 0 {
|
Some((x + 1, y)),
|
||||||
result.push((x + 1, y));
|
y.checked_sub(1).map(|y| (x, y)),
|
||||||
result.push((x, y + 1));
|
Some((x, y + 1)),
|
||||||
} else if x == 0 && y != 0 {
|
]
|
||||||
result.push((x + 1, y));
|
.into_iter()
|
||||||
result.push((x, y - 1));
|
.flatten()
|
||||||
result.push((x, y + 1));
|
.filter(|(x, y)| *x < MAX_X && *y < MAX_Y)
|
||||||
} else if x != 0 && y == 0 {
|
.filter(|(x, y)| maze[*x][*y].is_space())
|
||||||
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())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn calculate_equation(x: usize, y: usize) -> usize {
|
fn calculate_equation(x: usize, y: usize) -> usize {
|
||||||
|
|||||||
Reference in New Issue
Block a user