protected Puzzle(string name, string abbreviation, PuzzleDefinitionType definitionType, bool mustBeSquare, IEnumerable <int> validGridSizes, int defaultGridSize) { if (!validGridSizes.Contains(defaultGridSize)) { throw new ArgumentException("The default grid size of a puzzle must be among its valid grid sizes."); } Name = name; Abbreviation = abbreviation; DefinitionType = definitionType; MustBeSquare = mustBeSquare; ValidGridSizes = validGridSizes; DefaultGridSize = defaultGridSize; Entries = new LinkedList <PuzzleEntry>(); State = PuzzleState.Uninitialized; }
protected Sudoku(string name, string abbreviation, PuzzleDefinitionType definitionType) : base(name, abbreviation, definitionType, SizesSquares, 9) { }
protected LatinSquare(string name, string abbreviation, PuzzleDefinitionType definitionType, IEnumerable <int> validGridSizes, int defaultGridSize) : base(name, abbreviation, definitionType, true, validGridSizes, defaultGridSize) { }