4s.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include <u.h>
  2. #include <libc.h>
  3. #include <draw.h>
  4. #include <thread.h>
  5. #include <mouse.h>
  6. #include <keyboard.h>
  7. #define N 4
  8. typedef struct Piece Piece;
  9. struct Piece{
  10. short rot;
  11. short tx;
  12. Point sz;
  13. Point d[N];
  14. };
  15. Piece pieces[]={
  16. { 0, 0, 4,1, { 0,0, 1,0, 1,0, 1,0 }},
  17. { 1, 0, 2,4, { 1,0, 0,1, 0,1, 0,1 }},
  18. { 2, 0, 4,1, { 0,0, 1,0, 1,0, 1,0 }},
  19. { 3, 0, 2,4, { 1,0, 0,1, 0,1, 0,1 }},
  20. { 0, 1, 3,2, { 0,0, 1,0, 1,0, 0,1 }},
  21. { 1, 1, 2,3, { 1,0, 0,1, 0,1, -1,0 }},
  22. { 2, 1, 3,2, { 0,0, 0,1, 1,0, 1,0 }},
  23. { 3, 1, 2,3, { 0,0, 1,0, -1,1, 0,1 }},
  24. { 0, 2, 3,2, { 0,1, 1,0, 1,0, 0,-1}},
  25. { 1, 2, 2,3, { 0,0, 0,1, 0,1, 1,0 }},
  26. { 2, 2, 3,2, { 0,0, 1,0, 1,0, -2,1 }},
  27. { 3, 2, 2,3, { 0,0, 1,0, 0,1, 0,1 }},
  28. { 0, 3, 2,2, { 0,1, 1,0, 0,-1, -1,0}},
  29. { 1, 3, 2,2, { 0,1, 1,0, 0,-1, -1,0}},
  30. { 2, 3, 2,2, { 0,1, 1,0, 0,-1, -1,0}},
  31. { 3, 3, 2,2, { 0,1, 1,0, 0,-1, -1,0}},
  32. { 0, 4, 3,2, { 0,0, 1,0, 1,0, -1,1 }},
  33. { 1, 4, 2,3, { 1,0, -1,1, 1,0, 0,1 }},
  34. { 2, 4, 3,2, { 1,0, -1,1, 1,0, 1,0 }},
  35. { 3, 4, 2,3, { 0,0, 0,1, 0,1, 1,-1}},
  36. { 0, 5, 3,2, { 0,0, 1,0, 0,1, 1,0 }},
  37. { 1, 5, 2,3, { 1,0, 0,1, -1,0, 0,1 }},
  38. { 2, 5, 3,2, { 0,0, 1,0, 0,1, 1,0 }},
  39. { 3, 5, 2,3, { 1,0, 0,1, -1,0, 0,1 }},
  40. { 0, 6, 3,2, { 0,1, 1,0, 0,-1, 1,0 }},
  41. { 1, 6, 2,3, { 0,0, 0,1, 1,0, 0,1 }},
  42. { 2, 6, 3,2, { 0,1, 1,0, 0,-1, 1,0 }},
  43. { 3, 6, 2,3, { 0,0, 0,1, 1,0, 0,1 }},
  44. };
  45. #include "xs.h"