ben
/
aoc
1
0
Fork 0

trygetvalue!

This commit is contained in:
Ben Harris 2023-09-18 14:47:41 -04:00
parent bb908f3636
commit f451e0aa77
3 changed files with 12 additions and 15 deletions

View File

@ -44,7 +44,7 @@ public sealed class Day07 : Day
{
_actions.Add(destination, () =>
{
if (_wires.ContainsKey(destination)) return _wires[destination];
if (_wires.TryGetValue(destination, out var wire)) return wire;
var res = _actions[split[0]]();
_wires.Add(destination, res);
@ -62,7 +62,7 @@ public sealed class Day07 : Day
case "AND":
_actions.Add(destination, () =>
{
if (_wires.ContainsKey(destination)) return _wires[destination];
if (_wires.TryGetValue(destination, out var wire)) return wire;
var res = (ushort)((ushort.TryParse(split[0], out var v)
? v
@ -74,7 +74,7 @@ public sealed class Day07 : Day
case "OR":
_actions.Add(destination, () =>
{
if (_wires.ContainsKey(destination)) return _wires[destination];
if (_wires.TryGetValue(destination, out var wire)) return wire;
var res = (ushort)((ushort.TryParse(split[0], out var v)
? v
@ -86,7 +86,7 @@ public sealed class Day07 : Day
case "LSHIFT":
_actions.Add(destination, () =>
{
if (_wires.ContainsKey(destination)) return _wires[destination];
if (_wires.TryGetValue(destination, out var wire)) return wire;
var res = (ushort)(_actions[split[0]]() << ushort.Parse(split[2]));
_wires.Add(destination, res);
@ -96,7 +96,7 @@ public sealed class Day07 : Day
case "RSHIFT":
_actions.Add(destination, () =>
{
if (_wires.ContainsKey(destination)) return _wires[destination];
if (_wires.TryGetValue(destination, out var wire)) return wire;
var res = (ushort)(_actions[split[0]]() >> ushort.Parse(split[2]));
_wires.Add(destination, res);
@ -114,10 +114,10 @@ public sealed class Day07 : Day
{
ProcessInstructions();
var p1 = _actions["a"]();
ProcessInstructions();
_actions["b"] = () => p1;
return _actions["a"]();
}
}
}

View File

@ -21,8 +21,7 @@ public sealed class Day14 : Day
if (quantity <= 0)
throw new ArgumentOutOfRangeException(nameof(quantity));
if (!_available.ContainsKey(chem))
_available[chem] = 0;
_available.TryAdd(chem, 0);
if (_available[chem] < quantity && !Produce(chem, quantity - _available[chem]))
return false;

View File

@ -66,14 +66,12 @@ public sealed class Day20 : Day
foreach (var piece in puzzlePieces)
foreach (var (original, flipped) in piece.SidesWithFlippedPaired.Value)
{
if (sides.ContainsKey(original))
if (sides.TryGetValue(original, out var side))
{
var otherPiece = sides[original];
AddConnection(piece, otherPiece);
AddConnection(piece, side);
}
else if (sides.ContainsKey(flipped))
else if (sides.TryGetValue(flipped, out var otherPiece))
{
var otherPiece = sides[flipped];
AddConnection(piece, otherPiece);
}
else