Esempio n. 1
0
        public CellHashset(SudokuSolverVM InParent, int InIndex, int Row, int Col, int Quad)
        {
            _Parent         = InParent;
            _Index          = InIndex;
            StartOfRow      = Row;
            StartOfColumn   = Col;
            StartOfQuadrant = Quad;

            _PossibleAnswers = new HashSet <int>();

            for (int i = 1; i <= SudokuSolverVM.NUM_VALS; i++)
            {
                _PossibleAnswers.Add(i);
            }
        }
Esempio n. 2
0
        public SudokuSolverView()
        {
            _VM = new SudokuSolverVM();

            DataContext = _VM;

            InitializeComponent();

            for (int i = 0; i < SudokuSolverVM.ROWS; i++)
            {
                SudokuGameboard.RowDefinitions.Add(new RowDefinition());
            }

            for (int i = 0; i < SudokuSolverVM.COLS; i++)
            {
                SudokuGameboard.ColumnDefinitions.Add(new ColumnDefinition());
            }

            for (int i = 0; i < SudokuSolverVM.TOTAL_CELLS; i++)
            {
                CellView Cell = new CellView(_VM.Cells[i]);

                Grid.SetRow(Cell, (int)Math.Floor((double)(i / SudokuSolverVM.COLS)));
                Grid.SetColumn(Cell, (i % SudokuSolverVM.COLS));

                SudokuGameboard.Children.Add(Cell);

                // start of a quadrant
                if (_VM.FindTheStartOfIndexQuadrant(i) == i)
                {
                    Border QuadBorder = new Border();
                    Grid.SetRow(QuadBorder, (int)Math.Floor((double)(i / SudokuSolverVM.COLS)));
                    Grid.SetColumn(QuadBorder, (i % SudokuSolverVM.COLS));

                    Grid.SetRowSpan(QuadBorder, SudokuSolverVM.QUAD_ROWS);
                    Grid.SetColumnSpan(QuadBorder, SudokuSolverVM.QUAD_COLS);

                    QuadBorder.BorderThickness = new Thickness(3);
                    QuadBorder.BorderBrush     = new SolidColorBrush(Colors.White);

                    SudokuGameboard.Children.Add(QuadBorder);
                }
            }
        }