public IPredefinedSudokuBox GetPredefinedSudokuBox( SudokuBoxCoordinate coordinate, SudokuBoxCoordinate?parentCoordinate, SudokuBoxNumbers number) { return(new PredefinedSudokuBox(coordinate, parentCoordinate, number)); }
public PredefinedSudokuBox( SudokuBoxCoordinate coordinate, SudokuBoxCoordinate?parentCoordinate, SudokuBoxNumbers number) : base(coordinate, parentCoordinate, SudokuBoxState.Predefined) { Number = number; }
public INoteSudokuBox WithOrWithoutNumber(SudokuBoxNumbers number) { var numbers = new List <SudokuBoxNumbers>(Numbers); if (numbers.All(n => n != number)) { numbers.Add(number); } else { numbers.Remove(number); } // ReSharper disable once PossibleInvalidOperationException return(new NoteSudokuBox(Coordinate, ParentCoordinate, numbers)); }
public static SudokuBoxCoordinate?GetCoordinate(int index, SudokuBoxNumbers xWidth) { var x = index / (int)xWidth + 1; if (!Enum.IsDefined(typeof(SudokuBoxNumbers), x)) { return(null); } var y = index % (int)xWidth + 1; if (!Enum.IsDefined(typeof(SudokuBoxNumbers), y)) { return(null); } return(new SudokuBoxCoordinate((SudokuBoxNumbers)x, (SudokuBoxNumbers)y)); }
public UserFilledSudokuBox WithNumber(SudokuBoxNumbers newNumber) { // ReSharper disable once PossibleInvalidOperationException return(newNumber == Number ? this : new UserFilledSudokuBox(Coordinate, ParentCoordinate, newNumber)); }
public IPredefinedSudokuBox WithNumber(SudokuBoxNumbers newNumber) { return(newNumber == Number ? this : new PredefinedSudokuBox(Coordinate, ParentCoordinate, newNumber)); }
public SudokuBoxCoordinate(SudokuBoxNumbers x, SudokuBoxNumbers y) { X = x; Y = y; }
public static int GetIndex(SudokuBoxCoordinate coordinate, SudokuBoxNumbers xWidth) { return(((int)coordinate.X - 1) * (int)xWidth + (int)coordinate.Y - 1); }