Advertisement
Guest User

Untitled

a guest
Aug 27th, 2014
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.00 KB | None | 0 0
  1. /**************************************************************************\
  2. | Toledo Nanochess (c) Copyright 2009 Oscar Toledo G. All rights reserved  |
  3. | 1257 non-blank characters. Evolution from my winning IOCCC 2005 entry.   |
  4. | o Use D2D4 algebraic style for movements.  biyubi@gmail.com  Nov/20/2009 |
  5. | o On promotion add a number for final piece (3=N, 4=B, 5=R, 6=Q)         |
  6. | o Press Enter alone for computer to play.                                |
  7. | o Full legal chess moves.                       http://www.nanochess.org |
  8. | o Remove these comments to get 1326 bytes source code (*NIX end-of-line) |
  9. \**************************************************************************/
  10. char*l="ustvrtsuqqqqqqqqyyyyyyyy}{|~z|{}"
  11. "   76Lsabcddcba .pknbrq  PKNBRQ ?A6J57IKJT576,+-48HLSU";
  12. #define F getchar()&z
  13. #define v X(0,0,0,21,
  14. #define Z while(
  15. #define _ ;if(
  16. #define P return--G,y^=8,
  17. B,i,y,u,b,I[411],*G=I,x=10,z=15,M=1e4;X(w,c,h,e,S,s){int t,o,L,E,d,O=e,N=-M*M,K
  18. =78-h<<x,p,*g,n,*m,A,q,r,C,J,a=y?-x:x;y^=8;G++;d=w||s&&s>=h&&v 0,0)>M;do{_ o=I[
  19. p=O]){q=o&z^y _ q<7){A=q--&2?8:4;C=o-9&z?q["& .$  "]:42;do{r=I[p+=C[l]-64]_!w|p
  20. ==w){g=q|p+a-S?0:I+S _!r&(q|A<3||g)||(r+1&z^y)>9&&q|A>2){_ m=!(r-2&7))P G[1]=O,
  21. K;J=n=o&z;E=I[p-a]&z;t=q|E-7?n:(n+=2,6^y);Z n<=t){L=r?l[r&7]*9-189-h-q:0 _ s)L
  22. +=(1-q?l[p/x+5]-l[O/x+5]+l[p%x+6]*-~!q-l[O%x+6]+o/16*8:!!m*9)+(q?0:!(I[p-1]^n)+
  23. !(I[p+1]^n)+l[n&7]*9-386+!!g*99+(A<2))+!(E^y^9)_ s>h||1<s&s==h&&L>z|d){p[I]=n,O
  24. [I]=m?*g=*m,*m=0:g?*g=0:0;L-=X(s>h|d?0:p,L-N,h+1,G[1],J=q|A>1?0:p,s)_!(h||s-1|B
  25. -O|i-n|p-b|L<-M))P y^=8,u=J;J=q-1|A<7||m||!s|d|r|o<z||v 0,0)>M;O[I]=o;p[I]=r;m?
  26. *m=*g,*g=0:g?*g=9^y:0;}_ L>N){*G=O _ s>1){_ h&&c-L<0)P L _!h)i=n,B=O,b=p;}N=L;}
  27. n+=J||(g=I+p,m=p<O?g-3:g+2,*m<z|m[O-p]||I[p+=p-O]);}}}}Z!r&q>2||(p=O,q|A>2|o>z&
  28. !r&&++C*--A));}}}Z++O>98?O=20:e-O);P N+M*M&&N>-K+1924|d?N:0;}main(){Z++B<121)*G
  29. ++=B/x%x<2|B%x<2?7:B/x&4?0:*l++&31;Z B=19){Z B++<99)putchar(B%x?l[B[I]|16]:x)_
  30. x-(B=F)){i=I[B+=(x-F)*x]&z;b=F;b+=(x-F)*x;Z x-(*G=F))i=*G^8^y;}else v u,5);v u,
  31. 1);}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement