private void UpdateWithMoves(string moves) { this.puzzle = Puzzle.Solved; try { foreach (var move in NotationParser.EnumerateMoves(moves)) { this.puzzle = Rotator.ApplyMove(this.puzzle, move); } } catch (Exception ex) { this.BeginInvoke( (Action) (() => { MessageBox.Show("Something went wrong:\r\n" + ex.ToString()); })); // For now just don't say anything and blank out the cube display. this.picPuzzle.Visible = false; return; } this.picPuzzle.Invalidate(); this.picPuzzle.Visible = true; this.Refresh(); }
public SearchState WithMove(NotationMoveType move) => new SearchState(Rotator.ApplyMove(this.Puzzle, move), this.Moves.Add(move));