Beispiel #1
0
 internal Group(int id, GroupTypes type, Sudoku sudoku)
 {
     Id = id;
     GroupType = type;
     Sudoku = sudoku;
     _Squares = new List<Square>(Sudoku.Size);
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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!");
        }
Beispiel #4
0
 internal Number(Sudoku sudoku, int value)
 {
     Sudoku = sudoku;
     Value = value;
     _AssignedSquares = new List<Square>(Sudoku.Size);
 }
Beispiel #5
0
        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;
        }
Beispiel #6
0
 public void SetSudoku(Sudoku sudoku)
 {
     Sudoku = sudoku;
 }