From ffb4a8e7a4d105a94d0480e56d0c03e0f18ac55d Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Tue, 9 Nov 2021 17:02:38 -0500 Subject: [PATCH] fix nullable logic --- aoc2019/Day03.cs | 2 +- aoc2019/Day15.cs | 24 ++++++++++-------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/aoc2019/Day03.cs b/aoc2019/Day03.cs index 8b997f5..91f7a57 100644 --- a/aoc2019/Day03.cs +++ b/aoc2019/Day03.cs @@ -29,7 +29,7 @@ public sealed class Day03 : Day foreach (var step in line.Split(',')) { - var d = int.Parse(step.Substring(1)); + var d = int.Parse(step[1..]); switch (step[0]) { case 'U': diff --git a/aoc2019/Day15.cs b/aoc2019/Day15.cs index 9c1fa00..2c080a7 100644 --- a/aoc2019/Day15.cs +++ b/aoc2019/Day15.cs @@ -17,7 +17,7 @@ public sealed class Day15 : Day var halt = IntCodeVM.HaltType.Waiting; while (halt == IntCodeVM.HaltType.Waiting) { - var direction = currentLocation.NextDirection(); + var direction = currentLocation!.NextDirection(); if (direction <= 4) { var (x, y) = currentLocation.Neighbor(direction); @@ -46,15 +46,11 @@ public sealed class Day15 : Day if (direction > 0) { halt = vm.Run(direction); - switch (vm.Result) + currentLocation = vm.Result switch { - case Location.Empty: - case Location.System: - currentLocation = Location.GetLocation(currentLocation.Neighbor(direction)); - break; - default: - throw new Exception($"Unknown or unexpected response for previous room: {vm.Result}"); - } + Location.Empty or Location.System => Location.GetLocation(currentLocation.Neighbor(direction)), + _ => throw new Exception($"Unknown or unexpected response for previous room: {vm.Result}"), + }; } else { @@ -90,10 +86,10 @@ public sealed class Day15 : Day currentLocation = Location.OxygenLocation; var distance = 0; - while (currentLocation.PreviousDirection != 0) + while (currentLocation?.PreviousDirection != 0) { distance++; - currentLocation = Location.GetLocation(currentLocation.PreviousLocation()); + currentLocation = Location.GetLocation(currentLocation!.PreviousLocation()); } return $"{distance}"; @@ -154,7 +150,7 @@ public sealed class Day15 : Day AllLocations.Add((x, y), this); } - public static Location OxygenLocation { get; private set; } + public static Location? OxygenLocation { get; private set; } public int PreviousDirection { get; } private int X { get; } private int Y { get; } @@ -204,12 +200,12 @@ public sealed class Day15 : Day return searchDirection++; } - public static Location GetLocation(int x, int y) + public static Location? GetLocation(int x, int y) { return AllLocations.ContainsKey((x, y)) ? AllLocations[(x, y)] : null; } - public static Location GetLocation((int x, int y) coords) + public static Location? GetLocation((int x, int y) coords) { return GetLocation(coords.x, coords.y); }