internal Group(int id, GroupTypes type, Sudoku sudoku) { Id = id; GroupType = type; Sudoku = sudoku; _Squares = new List<Square>(Sudoku.Size); }
internal Square(int id, Number number, Sudoku sudoku, Group horizantolGroup, Group verticalGroup, Group squareGroup) { this.Id = id; this.Fill(number, FillTypes.None); this.Sudoku = sudoku; //Groups _SquareGroups.Add(horizantolGroup); _SquareGroups.Add(verticalGroup); _SquareGroups.Add(squareGroup); //this.HorizontalTypeGroup = horizantolGroup; //this.VerticalTypeGroup = verticalGroup; //this.SquareTypeGroup = squareGroup; //Available numbers; assign all number, except zero _AvailableNumbers = new List<Number>(this.Sudoku.Size); foreach (var availableNumber in this.Sudoku.AllNumbersExceptZero) _AvailableNumbers.Add(availableNumber); }
static void NewSudoku() { ClearScreen(); Sudoku = new Sudoku(); Sudoku.SquareNumberChanged += new Square.SquareEventHandler(Sudoku_SquareNumberChanged); Sudoku.PotentialSquareFound += new Potential.FoundEventHandler(Sudoku_PotentialSquareFound); Console.WriteLine("New sudoku is ready!"); }
internal Number(Sudoku sudoku, int value) { Sudoku = sudoku; Value = value; _AssignedSquares = new List<Square>(Sudoku.Size); }
public HttpResponseMessage<SudokuContainer> Post() { //Id of the container //TODO Thread safety? int nextId = 1; lock (this) { if (CacheManager.SudokuList.Count > 0) nextId = (CacheManager.SudokuList.Max(s => s.Id) + 1); } //Sudoku var sudoku = new Sudoku(9); sudoku.AutoSolve = true; //New container var container = new SudokuContainer(); container.Id = nextId; container.SetSudoku(sudoku); container.Prepare(); CacheManager.SudokuList.Add(container); var response = new HttpResponseMessage<SudokuContainer>(container, HttpStatusCode.Created); string uri = Url.Route(null, new { id = container.Id }); response.Headers.Location = new Uri(Request.RequestUri, uri); return response; }
public void SetSudoku(Sudoku sudoku) { Sudoku = sudoku; }