public PuzzleEditorSquareContentsCell(PuzzleEditor parent, Vector2D position)
     : base(SquareToBool(parent.editorGrid.Squares[position]))
 {
     this.parent   = parent;
     this.contents = parent.editorGrid.Contents[position];
     this.position = position;
 }
        /// <summary>
        /// Creates a puzzle editor. This object offers
        /// all functionality related to the creation and modification
        /// of puzzles.
        /// </summary>
        /// <param name="puzzle">Puzzle to be edited. Note that this object cannot be changed; the editor
        /// uses this puzzle solely as an initial state.</param>
        /// <returns>An IPuzzleEditor object.</returns>
        public IPuzzleEditor CreatePuzzleEditor(Puzzle puzzle)
        {
            var editorGrid   = EditorGrid.FromPuzzle(puzzle);
            var puzzleEditor = new PuzzleEditor(editorGrid);

            return(puzzleEditor);
        }
 public PuzzleEditorSquare(PuzzleEditor parent, Vector2D position, Cell <Ambiguity> ambiguity)
 {
     this.IsFilled  = new PuzzleEditorSquareContentsCell(parent, position);
     this.Position  = position;
     this.Ambiguity = ambiguity;
 }