namespace Day24; public class LuckyShot { private readonly IList _lines; public LuckyShot(IList lines) { _lines = lines; } public void Find() { var equations = new List(); Console.WriteLine("import sympy"); Console.WriteLine(); Console.WriteLine("sx, sy, sz, vsx, vsy, vsz = sympy.symbols(\"sx, sy, sz, vsx, vsy, vsz\")"); Console.WriteLine(); Console.WriteLine("equations = []"); for (var i = 0; i < 3; i++) { var h = _lines[i]; equations.Add($"equations.append(({h.Position.X} - sx) / (vsx - ({h.Velocity.X})) - ({h.Position.Y} - sy) / (vsy - ({h.Velocity.Y})))"); equations.Add($"equations.append(({h.Position.X} - sx) / (vsx - ({h.Velocity.X})) - ({h.Position.Z} - sz) / (vsz - ({h.Velocity.Z})))"); } Console.WriteLine(string.Join("\n", equations)); Console.WriteLine(); Console.WriteLine("answers = sympy.solve(equations)"); Console.WriteLine("print(answers)"); Console.WriteLine("print(answers[0][sx] + answers[0][sy] + answers[0][sz])"); } }