gen.h (939B)
1 /* gen.h - solver y generador de sudokus (sin malloc ni recursion). 2 * Una grilla es uint8_t[81], fila por fila, 0 = vacia. */ 3 #ifndef SUDOKU_GEN_H 4 #define SUDOKU_GEN_H 5 6 #include <stdint.h> 7 #include <stdbool.h> 8 9 extern uint8_t su_peer[81][20]; /* las 20 celdas que comparten fila, columna o bloque */ 10 extern uint8_t su_pc[512]; /* bits prendidos de una mascara de 9 */ 11 12 void su_init(void); 13 /* Cuenta soluciones hasta limit (la primera va a out si no es NULL). 14 * -1 si se pasa de maxnodes. rnd: prueba los candidatos al azar. */ 15 int su_count(const uint8_t *g, int limit, uint8_t *out, int rnd, int32_t maxnodes); 16 /* Dificultad "humana": 0 alcanza con singles, 1 con intersecciones, 17 * 2 con pares/triples/X-wing, 3 hay que probar. */ 18 int su_grade(const uint8_t *g); 19 /* Arma un sudoku de solucion unica del nivel pedido (0..3). Devuelve las pistas. */ 20 int su_generate(int level, uint8_t *puzzle, uint8_t *solution); 21 22 #endif