trygetvalue!
This commit is contained in:
parent
bb908f3636
commit
f451e0aa77
|
@ -44,7 +44,7 @@ public sealed class Day07 : Day
|
||||||
{
|
{
|
||||||
_actions.Add(destination, () =>
|
_actions.Add(destination, () =>
|
||||||
{
|
{
|
||||||
if (_wires.ContainsKey(destination)) return _wires[destination];
|
if (_wires.TryGetValue(destination, out var wire)) return wire;
|
||||||
|
|
||||||
var res = _actions[split[0]]();
|
var res = _actions[split[0]]();
|
||||||
_wires.Add(destination, res);
|
_wires.Add(destination, res);
|
||||||
|
@ -62,7 +62,7 @@ public sealed class Day07 : Day
|
||||||
case "AND":
|
case "AND":
|
||||||
_actions.Add(destination, () =>
|
_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)
|
var res = (ushort)((ushort.TryParse(split[0], out var v)
|
||||||
? v
|
? v
|
||||||
|
@ -74,7 +74,7 @@ public sealed class Day07 : Day
|
||||||
case "OR":
|
case "OR":
|
||||||
_actions.Add(destination, () =>
|
_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)
|
var res = (ushort)((ushort.TryParse(split[0], out var v)
|
||||||
? v
|
? v
|
||||||
|
@ -86,7 +86,7 @@ public sealed class Day07 : Day
|
||||||
case "LSHIFT":
|
case "LSHIFT":
|
||||||
_actions.Add(destination, () =>
|
_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]));
|
var res = (ushort)(_actions[split[0]]() << ushort.Parse(split[2]));
|
||||||
_wires.Add(destination, res);
|
_wires.Add(destination, res);
|
||||||
|
@ -96,7 +96,7 @@ public sealed class Day07 : Day
|
||||||
case "RSHIFT":
|
case "RSHIFT":
|
||||||
_actions.Add(destination, () =>
|
_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]));
|
var res = (ushort)(_actions[split[0]]() >> ushort.Parse(split[2]));
|
||||||
_wires.Add(destination, res);
|
_wires.Add(destination, res);
|
||||||
|
@ -114,10 +114,10 @@ public sealed class Day07 : Day
|
||||||
{
|
{
|
||||||
ProcessInstructions();
|
ProcessInstructions();
|
||||||
var p1 = _actions["a"]();
|
var p1 = _actions["a"]();
|
||||||
|
|
||||||
ProcessInstructions();
|
ProcessInstructions();
|
||||||
|
|
||||||
_actions["b"] = () => p1;
|
_actions["b"] = () => p1;
|
||||||
return _actions["a"]();
|
return _actions["a"]();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -21,8 +21,7 @@ public sealed class Day14 : Day
|
||||||
if (quantity <= 0)
|
if (quantity <= 0)
|
||||||
throw new ArgumentOutOfRangeException(nameof(quantity));
|
throw new ArgumentOutOfRangeException(nameof(quantity));
|
||||||
|
|
||||||
if (!_available.ContainsKey(chem))
|
_available.TryAdd(chem, 0);
|
||||||
_available[chem] = 0;
|
|
||||||
|
|
||||||
if (_available[chem] < quantity && !Produce(chem, quantity - _available[chem]))
|
if (_available[chem] < quantity && !Produce(chem, quantity - _available[chem]))
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -66,14 +66,12 @@ public sealed class Day20 : Day
|
||||||
foreach (var piece in puzzlePieces)
|
foreach (var piece in puzzlePieces)
|
||||||
foreach (var (original, flipped) in piece.SidesWithFlippedPaired.Value)
|
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, side);
|
||||||
AddConnection(piece, otherPiece);
|
|
||||||
}
|
}
|
||||||
else if (sides.ContainsKey(flipped))
|
else if (sides.TryGetValue(flipped, out var otherPiece))
|
||||||
{
|
{
|
||||||
var otherPiece = sides[flipped];
|
|
||||||
AddConnection(piece, otherPiece);
|
AddConnection(piece, otherPiece);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue