sudoku.h 1.1 KB

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