public JupiterMoons(JupiterMoons jm) { foreach (var jmMoon in jm.Moons) { this.Moons.Add((jmMoon.Clone() as Moon)); } }
public static void ExecuteStarOne(string fileLocation = "PuzzleInput/Day12.txt") { List <string> moonStringList = File.ReadAllLines(fileLocation).ToList(); var jm = new JupiterMoons(moonStringList); for (int i = 0; i < 1000; i++) { jm.Tick(); } Logger.LogMessage(LogLevel.ANSWER, "12A: Jupiter Moon Energy: " + jm.GetSystemEnergy()); }
public static void ExecuteStarTwo(string fileLocation = "PuzzleInput/Day12.txt") { List <string> moonStringList = File.ReadAllLines(fileLocation).ToList(); var jm = new JupiterMoons(moonStringList); var initialJm = jm.Clone() as JupiterMoons; jm.Tick(); long steps = 0; while (!jm.Equals(initialJm)) { jm.Tick(); steps++; if (steps % 1000 == 0) { Logger.LogMessage(LogLevel.DEBUG, steps.ToString()); } } Logger.LogMessage(LogLevel.ANSWER, "12B: Steps to Repeat: " + steps); }