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); }
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)); }
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 }); }
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); }
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 }
public static bool checkRow(Row r, NumberGrid g) { return(Check(r.rowNum)); }
public static bool checkRow(int row, NumberGrid g) { int[] entries = g.completeGrid[row].rowNum; return(Check(entries)); }