Advertisement
Guest User

anon.c (Best 3D puzzle winner 2005)

a guest
Oct 2nd, 2014
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5.  
  6. /* Defines */
  7.  
  8. #ifndef NO_STTY
  9. #define S1 system("stty cbreak -echo")||
  10. #define S2 system("stty sane")||
  11. #else
  12. #define S1
  13. #define S2
  14. #endif
  15.  
  16. #define A(i) (((q*)R(8))[i])
  17. #define B p(b)
  18. #define C p(&a)
  19. #define H(i) sscanf(A(i),"%ld",&R(i+11))&0 ||
  20. #define P q*
  21. #define M(a,b) main((i)(a),(P)(b))
  22.  
  23. #define p(x) ((i*)(x))
  24. #define D T(B-C,C-B)
  25. #define T(x,y) ((a&1)*((i)(x))+(~a&1)*((i)(y)))
  26. #define R(x) (*(B+x))
  27. #define q char*
  28. #define Q(x) ((q)(x))
  29. #define W(x,y) ((B[x]=(i)(y))&0)||
  30. #define BS (w*l*h)
  31. #define do(x,y) (a-x||y)&&
  32. #define f(x) M(x,b)
  33. #define if(p,q,r,s) ((p)&&!(q)||(s))&&(r)||
  34. #define i long
  35. #define I (int)
  36.  
  37. #define while(x,y,z) do(x, y && !(z) && f(a))
  38. #define for(s,i,x,y,z,Z) W(i,x)f(s)||Z) && while(s,R(i)-y,z||W(i,R(i)+1)0)(s
  39. #define return return do
  40. #define w R(12)
  41. #define l R(13)
  42. #define h R(14)
  43. #define X(i) (R(i)%w)
  44. #define Y(i) ((R(i)%(w*l))/w)
  45.  
  46. #define Z(i) (R(i)/(w*l))
  47. #define pr !printf
  48. #define switch(x) (W(32+R(15),R(32+x+R(15))) W(32+x+R(15),0) (B[15]+=x)|1)
  49. #define case(k,x,y) R(a)==k && x && switch(y) && f(13)||
  50. #define TL(i) R(32+R(i))
  51.  
  52.  
  53. /* Main program */
  54.  
  55. int main(int a, P b) {
  56. return(1>>1^1, M(6+!!M(5,C),C))
  57.  
  58. do(
  59. 13,
  60. pr("\x1b[;H")||
  61.  
  62. for(14,4,0,BS,!X(4)&&pr(
  63. "%*s",
  64. I(l-Y(4)),
  65. ""
  66. )
  67.  
  68. ||
  69.  
  70. if(TL(4),pr(
  71. "%*ld",I
  72. R(31),
  73. TL(4)),0,
  74. pr("%*.*s",I
  75. R(31),
  76. I R(31),"#####")
  77. )
  78. if(X(4)==w-1 , pr("\n"),0 , pr("%*s", I(l+1), "")) (
  79. (R(4)+1)%(w*l)==0 && l>1)&&
  80. pr("\n"),0))
  81. do(
  82. 1&~1,
  83. pr("Syntax: %s <x> <y> [<z>]\n", b[0])||f(15)
  84. )((a&~1)
  85.  
  86. -6||D>>12
  87. &&(*(p(T(C,b))+8)=*p(Q(b)+(Q(&b)-Q(C)))
  88. )
  89.  
  90. &&(*(p(T(C,b))+9) = *p(b))&&M(
  91. 8,T(C,b))
  92. ||
  93.  
  94. f( a) )&&do(
  95. 8,
  96. if(R(9)&1,H(1)H(
  97. 2 ) 0,W(14,
  98. l)W(13,1)0,
  99. H(1
  100. )
  101.  
  102. H(2)
  103. H(3)
  104. 0)(srand(time(0)),0
  105. ) ||for(9,4, 0,BS, f(16)
  106.  
  107. || W(R(4)+32,R(0))!R(0) && W(15,R(4) )0,
  108.  
  109. W(
  110. 31,
  111. snprintf(A(0),1,"%ld",BS))
  112. S1 pr("\x1b[2J") ||
  113. f(13)
  114. ||
  115.  
  116. f(18) ||
  117. f(15)
  118. ))
  119.  
  120. do(
  121. 16,W(0,rand()%BS
  122. ) W(1,0)
  123.  
  124. for(17, 5, 0,R(4),! (
  125. TL(
  126. 5)-R(0))&&! (
  127. W(1,1)
  128. W(5,R(4)-1)
  129. 0),R(1)&&f(16))
  130. )
  131.  
  132. do(
  133. 18,W(0,0
  134. ) for(19,4,0,BS, TL(4)-(R(4)+1)
  135.  
  136. %BS&& (
  137. W(0,1)
  138. W(4,BS-1
  139. ) 0)||0,!R(0) &&
  140.  
  141. pr(
  142. "You win!\n"
  143. )
  144. ||
  145. R(0)&& (
  146. W(a,getchar())
  147. case('i',
  148. 0<Z(15),
  149. -w*l)
  150. case('j',
  151. 0<X(15),
  152. -1)
  153. case('k',
  154. Z(15)<h-1,
  155. w*l)
  156. case('l',
  157. X(15)<w-1,
  158. 1)
  159. case('n',
  160. Y(15)<l-1,
  161. w)
  162. case('o',
  163. 0<Y(15),-w
  164. )
  165. R(a)=='q'&&!
  166.  
  167. pr(
  168. "You lose :-)\n"
  169. )
  170. &&f(15)||f(a))
  171. )
  172. )
  173.  
  174. do(
  175. 15,S2
  176. (exit(0),a)
  177. ) (a-5||C<p(b));
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement