public static long SystemPeriod(IEnumerable <string> input) { var system = SkySimulation.InitialiseFrom(input); var xPeriod = system.GetAxisPeriod(Axis.X); var yPeriod = system.GetAxisPeriod(Axis.Y); var zPeriod = system.GetAxisPeriod(Axis.Z); return(lcm(xPeriod, lcm(yPeriod, zPeriod))); }
int SystemEnergyAfter(IEnumerable <string> input, int steps) { var system = SkySimulation.InitialiseFrom(input); for (var t = 1; t <= steps; t++) { system.Tick(); } return(system.TotalEnergy); }