1*5fe11e25SDavid du Colombier enum{ 2*5fe11e25SDavid du Colombier Brdsize = 9, 3*5fe11e25SDavid du Colombier Psize = Brdsize * Brdsize, 4*5fe11e25SDavid du Colombier Alldigits = 0x1FF, 5*5fe11e25SDavid du Colombier Digit = 0x0000000F, 6*5fe11e25SDavid du Colombier Solve = 0x000000F0, 7*5fe11e25SDavid du Colombier Allow = 0x0001FF00, 8*5fe11e25SDavid du Colombier MLock = 0x00020000, 9*5fe11e25SDavid du Colombier 10*5fe11e25SDavid du Colombier Line = 0, 11*5fe11e25SDavid du Colombier Thickline = 1, 12*5fe11e25SDavid du Colombier Border = Thickline*4, 13*5fe11e25SDavid du Colombier Square = 48, 14*5fe11e25SDavid du Colombier Maxx = Square*9 + 2*Border, 15*5fe11e25SDavid du Colombier Maxy = Maxx + Square, 16*5fe11e25SDavid du Colombier }; 17*5fe11e25SDavid du Colombier 18*5fe11e25SDavid du Colombier typedef struct Cell { 19*5fe11e25SDavid du Colombier int digit; 20*5fe11e25SDavid du Colombier int solve; 21*5fe11e25SDavid du Colombier int locked; 22*5fe11e25SDavid du Colombier } Cell; 23*5fe11e25SDavid du Colombier 24*5fe11e25SDavid du Colombier Cell brd[Psize]; 25*5fe11e25SDavid du Colombier Cell obrd[Psize]; 26*5fe11e25SDavid du Colombier int board[Psize]; 27*5fe11e25SDavid du Colombier 28*5fe11e25SDavid du Colombier /* game.c */ 29*5fe11e25SDavid du Colombier int getrow(int cell); 30*5fe11e25SDavid du Colombier int getcol(int cell); 31*5fe11e25SDavid du Colombier int getbox(int cell); 32*5fe11e25SDavid du Colombier void setdigit(int cc, int num); 33*5fe11e25SDavid du Colombier int boxcheck(int *board); 34*5fe11e25SDavid du Colombier int rowcheck(int *board); 35*5fe11e25SDavid du Colombier int colcheck(int *board); 36*5fe11e25SDavid du Colombier int setallowed(int *board, int cc, int num); 37*5fe11e25SDavid du Colombier int chksolved(int *board); 38*5fe11e25SDavid du Colombier void attempt(int *pboard, int level); 39*5fe11e25SDavid du Colombier void clearp(void); 40*5fe11e25SDavid du Colombier void makep(void); 41*5fe11e25SDavid du Colombier 42*5fe11e25SDavid du Colombier /* sudoku.c */ 43*5fe11e25SDavid du Colombier void drawbar(int digit, int selected); 44*5fe11e25SDavid du Colombier void drawcell(int x, int y, int num, Image *col); 45*5fe11e25SDavid du Colombier void drawblink(int cell); 46*5fe11e25SDavid du Colombier char *genlevels(int i); 47*5fe11e25SDavid du Colombier 48*5fe11e25SDavid du Colombier /* levels.c */ 49*5fe11e25SDavid du Colombier void fprettyprintbrd(Cell *board); 50*5fe11e25SDavid du Colombier void fprintbrd(int fd, Cell *board); 51*5fe11e25SDavid du Colombier void floadbrd(int fd, Cell *board); 52*5fe11e25SDavid du Colombier void printboard(Cell *board); 53*5fe11e25SDavid du Colombier int loadlevel(char *name, Cell *board); 54*5fe11e25SDavid du Colombier void savegame(Cell *board); 55*5fe11e25SDavid du Colombier int loadgame(Cell *board); 56