#include "sudoku.h" /* * Restituisce un numero casuale nell'intervallo [min, max) */ int randomr(int min, int max){ int base = rand(); int intervallo = max - min; if (RAND_MAX == base) return randomr(min, max); if (base < RAND_MAX - (RAND_MAX % intervallo)) return min + base / (RAND_MAX / intervallo); else return randomr(min, max); } /* * Restituisce due numeri casuali diversi */ int *randomd(){ int *r = (int *)malloc(2 * sizeof(int)); do{ r[0] = randomr(1,9); r[1] = randomr(1,9); }while(r[0] == r[1]); return r; } /* * Scambia due variabili. * Fallisce se si passa la stessa variabile 2 volte. */ void scambia(int* a, int* b){ *a ^= *b; *b ^= *a; *a ^= *b; } /* * Blocca l'esecuzione finchè non viene premuto invio */ void pausa(){ char c; do getchar(); while ((c = getchar()) != '\n' && c != EOF); } /* * Cancella le evidenziature per i valori errati */ void cancella_errati(){ for(int i=0; i