Refactor Day08 to simplify AddToCircuits logic
This commit is contained in:
parent
c559f61496
commit
36d7a3f4e5
|
|
@ -82,38 +82,19 @@ public class Day08
|
|||
|
||||
private List<List<Coordinate>> AddToCircuits(Coordinate a, Coordinate b, List<List<Coordinate>> circuits)
|
||||
{
|
||||
var circuitToAddBTo = circuits.FirstOrDefault(circuit => circuit.Contains(a));
|
||||
var circuitToAddATo = circuits.FirstOrDefault(circuit => circuit.Contains(b));
|
||||
if (circuitToAddATo == null && circuitToAddBTo == null)
|
||||
{
|
||||
circuits.Add([a, b]);
|
||||
return circuits;
|
||||
}
|
||||
var circuitToAddBTo = circuits.First(circuit => circuit.Contains(a));
|
||||
var circuitToAddATo = circuits.First(circuit => circuit.Contains(b));
|
||||
|
||||
if (circuitToAddATo == circuitToAddBTo)
|
||||
{
|
||||
return circuits;
|
||||
}
|
||||
|
||||
if (circuitToAddATo != null && circuitToAddBTo != null)
|
||||
{
|
||||
circuitToAddBTo.AddRange(circuitToAddATo);
|
||||
circuits.Remove(circuitToAddATo);
|
||||
return circuits;
|
||||
}
|
||||
|
||||
if (circuitToAddATo != null)
|
||||
{
|
||||
circuitToAddATo.Add(a);
|
||||
}
|
||||
else
|
||||
{
|
||||
circuitToAddBTo!.Add(b);
|
||||
}
|
||||
|
||||
return circuits;
|
||||
}
|
||||
|
||||
private (Coordinate pointA, Coordinate pointB)[] GetAllCombinationsSortedByDistance(Coordinate[] coordinates)
|
||||
{
|
||||
var combinations = Combinations(coordinates)
|
||||
|
|
|
|||
Loading…
Reference in New Issue