示例#1
0
        public static bool checkCompleteGrid(NumberGrid g)
        {
            bool[] completeRowCheck       = new bool[g.gridSize];
            bool[] completeSmallGridCheck = new bool[g.gridSize];

            int[] locations = (g.gridSize == 4) ? new int[] { 9, 10, 17, 18 } : new int[] { 9, 10, 12, 17, 18, 20 };


            for (int i = 0; i < g.gridSize; i++)
            {
                completeRowCheck[i]       = checkRow(g.completeGrid[i], g);
                completeSmallGridCheck[i] = checkSmallGrid(g, (GridLocation)locations[i]);
            }

            Console.WriteLine();
            int truthCount = 0;

            for (int j = 0; j < g.gridSize; j++)
            {
                if (completeRowCheck[j] && completeSmallGridCheck[j])
                {
                    truthCount++;
                }
            }
            return(truthCount == g.gridSize);
        }
示例#2
0
        public static bool checkColumn(int column, NumberGrid g)
        {
            int columnNumber = column - 1;

            ArrayList entriesList = new ArrayList();

            //for(int i = 0; i < gridSize; i++)
            //{
            //    entries[i] = r.gridNum[columnNumber];
            //}

            foreach (Row r in g.completeGrid)
            {
                entriesList.Add(r.rowNum[columnNumber]);
            }

            int[] entries = (int[])entriesList.ToArray(typeof(int));

            return(Check(entries));
        }
示例#3
0
        static public object getRandomSudokuObject()
        {
            Random rand  = new Random();
            int    value = 4;

            if (sudokuType == 1)
            {
                value = 6;
            }
            sudokuType++;
            sudokuType %= 2;
            NumberGrid gridToSend = sudokuReader.getRandomSudoku(value);
            string     sudoku     = gridToSend.ToString();

            Console.WriteLine(sudoku);
            return(new
            {
                id = "server/sendSudoku",
                data = sudoku
            });
        }
示例#4
0
        public SudokuPage6(int[] values, MainWindow mainWindow)
        {
            InitializeComponent();
            main        = mainWindow;
            currentGrid = new NumberGrid(new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 });

            NumberGrid numberGrid = new NumberGrid(values);

            stopwatch = new Stopwatch();
            stopwatch.Start();

            Grid grid = baseGrid;

            for (int i = 0; i < 6; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    TextBlock block = new TextBlock();
                    if (numberGrid.completeGrid[j].rowNum[i] != 0)
                    {
                        block.Text       = "" + numberGrid.completeGrid[j].rowNum[i];
                        block.FontWeight = FontWeights.Bold;
                    }
                    else
                    {
                        block.Text       = "X";
                        block.Foreground = new SolidColorBrush(Colors.White);
                        block.MouseDown += new MouseButtonEventHandler(TextBlock_MouseDown);
                    }
                    block.VerticalAlignment   = VerticalAlignment.Center;
                    block.HorizontalAlignment = HorizontalAlignment.Center;
                    block.FontSize            = 80;

                    Grid.SetColumn(block, i);
                    Grid.SetRow(block, j);

                    Border border = new Border
                    {
                        BorderThickness = new Thickness(1),
                        BorderBrush     = new SolidColorBrush(Colors.Black)
                    };
                    Grid.SetColumn(border, i);
                    Grid.SetRow(border, j);

                    grid.Children.Add(block);
                    grid.Children.Add(border);
                }
            }

            for (int btnCount = 1; btnCount <= 6; btnCount++)
            {
                Button button = new Button();
                button.Content = "" + btnCount;
                button.Click  += new RoutedEventHandler(Number_Click);
                button.Height  = 50;
                button.Width   = 50;
                Grid.SetColumn(button, btnCount - 1);
                buttonGrid.Children.Add(button);
            }
            Button buttonEraser = new Button();

            buttonEraser.Content = "X";
            buttonEraser.Click  += new RoutedEventHandler(Number_Click);
            buttonEraser.Height  = 50;
            buttonEraser.Width   = 50;
            Grid.SetColumn(buttonEraser, 6);
            buttonGrid.Children.Add(buttonEraser);
        }
示例#5
0
        public static bool checkSmallGrid(NumberGrid grid, GridLocation g)
        {
            // Neem een deel van de array over
            // Doe dat voor beide rijen
            // Gooi ze samen in 1 array
            // En check ze met de Check() methode
            // Zoek een manier het te laten werken met 4 size én 6 size.

            Row r1, r2;

            int[] entries;
            switch (g)
            {
            case (GridLocation)9:
            {         //Top Left
                r1 = grid.completeGrid[0];
                r2 = grid.completeGrid[1];
                int[] front = SubArray <int>(r1.rowNum, 0, grid.gridSize / 2);
                int[] back  = SubArray <int>(r2.rowNum, 0, grid.gridSize / 2);
                entries = front.Concat(back).ToArray();
                break;
            }

            case (GridLocation)10:
            {         //Middle Left
                r1 = grid.completeGrid[2];
                r2 = grid.completeGrid[3];
                int[] front = SubArray <int>(r1.rowNum, 0, grid.gridSize / 2);
                int[] back  = SubArray <int>(r2.rowNum, 0, grid.gridSize / 2);
                entries = front.Concat(back).ToArray();
                break;
            }

            case (GridLocation)12:
            {         //Bottom Left
                r1 = grid.completeGrid[4];
                r2 = grid.completeGrid[5];
                int[] front = SubArray <int>(r1.rowNum, 0, grid.gridSize / 2);
                int[] back  = SubArray <int>(r2.rowNum, 0, grid.gridSize / 2);
                entries = front.Concat(back).ToArray();
                break;
            }

            case (GridLocation)17:
            {        //Top Right
                r1 = grid.completeGrid[0];
                r2 = grid.completeGrid[1];
                int[] front = SubArray <int>(r1.rowNum, grid.gridSize / 2, grid.gridSize / 2);
                int[] back  = SubArray <int>(r2.rowNum, grid.gridSize / 2, grid.gridSize / 2);
                entries = front.Concat(back).ToArray();
                break;
            }

            case (GridLocation)18:
            {        //Middle Right
                r1 = grid.completeGrid[2];
                r2 = grid.completeGrid[3];
                int[] front = SubArray <int>(r1.rowNum, grid.gridSize / 2, grid.gridSize / 2);
                int[] back  = SubArray <int>(r2.rowNum, grid.gridSize / 2, grid.gridSize / 2);
                entries = front.Concat(back).ToArray();
                break;
            }

            case (GridLocation)20:
            {        //Bottom Right
                r1 = grid.completeGrid[4];
                r2 = grid.completeGrid[5];
                int[] front = SubArray <int>(r1.rowNum, grid.gridSize / 2, grid.gridSize / 2);
                int[] back  = SubArray <int>(r2.rowNum, grid.gridSize / 2, grid.gridSize / 2);
                entries = front.Concat(back).ToArray();
                break;
            }

            default:
            {
                r1      = grid.completeGrid[0];
                r2      = grid.completeGrid[1];
                entries = new int[] { 0, 0, 0, 0, 0, 0 };
                break;
            }
            }

            return(Check(entries)); //ez pz lemon squeezy
        }
示例#6
0
 public static bool checkRow(Row r, NumberGrid g)
 {
     return(Check(r.rowNum));
 }
示例#7
0
 public static bool checkRow(int row, NumberGrid g)
 {
     int[] entries = g.completeGrid[row].rowNum;
     return(Check(entries));
 }