diff --git a/src/day15/main.rs b/src/day15/main.rs index 40a6a7a..8fa0f5a 100644 --- a/src/day15/main.rs +++ b/src/day15/main.rs @@ -52,6 +52,7 @@ impl Map { fn walk(&mut self, start: &XY, computer: &intcode::Computer, steps: usize) -> Option { let steps = steps + 1; + let mut result = None; for dir in 1..=4 { let direction = Direction::from(dir); let xy = start.add((&direction).into()); @@ -66,17 +67,17 @@ impl Map { match status { Status::HitWall => (), Status::MoveComplete => match self.walk(&xy, &computer, steps) { - Some(i) => return Some(i + 1), + Some(i) => result = Some(i + 1), None => (), }, - Status::Finished => return Some(1), + Status::Finished => result = Some(1), _ => unreachable!("unknown status"), } } else { unreachable!("computer unexpectedly halted"); } } - None + result } fn fill(&mut self) -> usize {