public StarSunPuzzle Copy() { var copy = new StarSunPuzzle(); copy.starPositions = new Dictionary <Vector2D, char>(starPositions); return(copy); }
static void Main(string[] args) { var puzzle = new StarSunPuzzle(); var solver = new BreadthFirstSearchSolver(); var solution = solver.Solve(puzzle); Console.WriteLine(puzzle); foreach (var(pos, dir) in solution) { Thread.Sleep(1000); puzzle.Move(pos, dir); Console.Clear(); Console.WriteLine(puzzle); } }