private void Solve() { var initialState = _puzzleState; var solver = new Solver(initialState); while (!solver.Done) { solver.Step(); lock (_lockObject) { _solverState = solver.CurrentState; } } lock (_lockObject) { _moves = solver.GetMoveSequence(); Console.WriteLine("Moves: " + _moves.Length); _moveIndex = 0; _puzzleState = _moves[_moveIndex].PuzzleState; _solved = true; } }
static void Main(string[] args) { var solver = new Solver(); solver.Solve(); }