/**************************************************************************\ | TI-Nspire port of Toledo Nanochess by Excale (2014) | | Due to non-standard Nspire code, this is 1579 bytes long. | | Original code is at the end of the file | \**************************************************************************/ #include #include #define F k(j)&z #define v H(1,0,0,0,21, #define Z while( #define _ ;if( #define P return--G,y^=8, #define R nio_console*j k(R){int i=nio_getch(j);wait_no_key_pressed();nio_fputc(i,j);return i;}H(f,w,c, h,e,S,s){static char *l;static int B,i,y,u,b,I[411],*G=I,x=10,z=15,M=1e4;if(f){ goto D;}G=&I;char Q[] = "ustvrtsuqqqqqqqqyyyyyyyy}{|~z|{} 76Lsabcddcba .pknb" "rq PKNBRQ ?A6J57IKJT576,+-48HLSU";l=&Q;R;nio_init(j,53,30,0,0,15,0,1);Z++B< 121)*G++=B/x%x<2|B%x<2?7:B/x&4?0:*l++&31;Z B=19){Z B++<99)nio_fputc(B%x?l[B[I]| 16]:x,j)_ 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,1);}return 0;D:;int t,o,L,E,d,O=e,N=-M*M,K=78-h<=h&&v 0,0)>M;do{_ o=I[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==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,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+=(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)+!(I[p+1]^n)+l[n&7]*9-386+!!g* 99+(A<2))+!(E^y^9)_ s>h||1z|d){p[I]=n,O[I]=m?*g=*m,*m=0:g?*g=0:0;L-= H(1,s>h|d?0:p,L-N,h+1,G[1],J=q|A>1?0:p,s)_!(h||s-1|B-O|i-n|p-b|L<-M))P y^=8,u=J ;J=q-1|A<7||m||!s|d|r|oM;O[I]=o;p[I]=r;m?*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;}n+=J||(g=I+p,m=p2||(p=O,q|A>2|o>z&!r&&++C*--A));}}}Z++O>98?O= 20:e-O);P N+M*M&&N>-K+1924|d?N:0;}main(){H(0,0,0,0,0,0,0);} /** Original code: **/ /**************************************************************************\ | Toledo Nanochess (c) Copyright 2009 Oscar Toledo G. All rights reserved | | 1257 non-blank characters. Evolution from my winning IOCCC 2005 entry. | | o Use D2D4 algebraic style for movements. biyubi@gmail.com Nov/20/2009 | | o On promotion add a number for final piece (3=N, 4=B, 5=R, 6=Q) | | o Press Enter alone for computer to play. | | o Full legal chess moves. http://nanochess.110mb.com | | o Remove these comments to get 1326 bytes source code (*NIX end-of-line) | \**************************************************************************/ /** char*l="ustvrtsuqqqqqqqqyyyyyyyy}{|~z|{}" " 76Lsabcddcba .pknbrq PKNBRQ ?A6J57IKJT576,+-48HLSU"; #define F getchar()&z #define v X(0,0,0,21, #define Z while( #define _ ;if( #define P return--G,y^=8, 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 =78-h<=h&&v 0,0)>M;do{_ o=I[ 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 ==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, 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 +=(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)+ !(I[p+1]^n)+l[n&7]*9-386+!!g*99+(A<2))+!(E^y^9)_ s>h||1z|d){p[I]=n,O [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 -O|i-n|p-b|L<-M))P y^=8,u=J;J=q-1|A<7||m||!s|d|r|oM;O[I]=o;p[I]=r;m? *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;} n+=J||(g=I+p,m=p2||(p=O,q|A>2|o>z& !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 ++=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)_ 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, 1);}} **/