| 12345678910111213141516171819202122232425262728293031323334 |
- namespace Day24;
- public class LuckyShot
- {
- private readonly IList<Line3> _lines;
- public LuckyShot(IList<Line3> lines)
- {
- _lines = lines;
- }
- public void Find()
- {
- var equations = new List<string>();
- 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])");
- }
- }
|