4s.c 1.5 KB

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