#include #include #include #include "board.h" int puzzle[81]; int total = 0; void puzzle_swap(int puzzle[81]); void generate_first_line(int puzzle[81]) { srand ( time(NULL) ); for (int i=0; i < 9; i++) { puzzle[i] = i + 1; } for (int i=0; i < 9; i++) { int random = (rand() % 9); int swap; swap = puzzle[random]; puzzle[random] = puzzle[i]; puzzle[i] = swap; } } void print_puzzle(int puzzle[81], bool reveal) { for (int i=0; i < 81; i++) { if ( i == 0 ) printw(" SUDOKU"); if ( i % 9 == 0 ) printw("\n"); else if ( i % 3 == 0 ) printw("|"); if ( i != 0 && i % 27 == 0 ) printw(" ===========================\n"); if (puzzle[i] & 2) printw("%2d ", puzzle[i]); else if ( reveal == true ) printw("%2d ", puzzle[i]); else printw(" "); } } void generate_puzzle(int puzzle[81]){ for (int i=9; i < 81; i++){ /* way too much nonsense to make a valid board * "The seed row method" -> https://sudokupulse.com/articles/how-to-create-sudoku-puzzles/ * row 2 */ if ( i < 15) puzzle[i] = puzzle[i-6]; else if ( i >= 15 && i < 18 ) puzzle[i] = puzzle[i-15]; /* row 3 */ else if ( i >= 18 && i < 24 ) puzzle[i] = puzzle[i-6]; else if ( i >= 24 && i < 27 ) puzzle[i] = puzzle[i-15]; /* row 4 */ else if ( i >= 27 && i < 35 ) puzzle[i] = puzzle[i-26]; else if ( i == 35 ) puzzle[i] = puzzle[i-35]; /* row 5 */ else if ( i >= 36 && i < 42 ) puzzle[i] = puzzle[i-6]; else if ( i >= 42 && i < 45 ) puzzle[i] = puzzle[i-15]; /* row 6 */ else if ( i >= 45 && i < 51 ) puzzle[i] = puzzle[i-6]; else if ( i >= 51 && i < 54 ) puzzle[i] = puzzle[i-15]; /* row 7 */ else if ( i >= 54 && i < 62 ) puzzle[i] = puzzle[i-26]; else if ( i == 62 ) puzzle[i] = puzzle[i-35]; /* row 8 */ else if ( i >= 63 && i < 69 ) puzzle[i] = puzzle[i-6]; else if ( i >= 69 && i < 72 ) puzzle[i] = puzzle[i-15]; /* row 9 */ else if ( i >= 72 && i < 78 ) puzzle[i] = puzzle[i-6]; else if ( i >= 78 && i < 81 ) puzzle[i] = puzzle[i-15]; puzzle_swap(puzzle); } } void puzzle_swap(int puzzle[81]) { }