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();
Debug.WriteLine("Moves: " + _moves.Length);
#if !NETFX_CORE
Console.WriteLine("Moves: " + _moves.Length);
#endif
_moveIndex = 0;
_puzzleState = _moves[_moveIndex].PuzzleState;
_solved = true;
}
}