Actually add 2004/arachnid/arachnid.alt.c
Forgetfully I forgot :-) to add the source file so it only worked with my local copy. The README.md file was modified and the Makefile was updated but the source code was not added so using make alt would only result in an error. This fixes that blunder.
This commit is contained in:
1 parent
294158499a
commit
9fc85551aa
2 files changed
+52
No files matched your search
@@ -1 +1,2 @@
|
||||
arachnid
|
||||
arachnid.alt
|
||||
@@ -0,0 +1,51 @@
|
||||
#include <ncurses.h>/*****************************************************/
|
||||
int m[256 ] [ 256 ],a
|
||||
,b ;;; ;;; WINDOW*w; char*l="" "\176qxl" "q" "q" "k" "w\
|
||||
xm" "x" "t" "j" "v" "u" "n" ,Q[
|
||||
]= "Z" "pt!ftd`" "qdc!`eu" "dq!$c!nnwf"/** *** */"t\040\t";c(
|
||||
int u , int v){ v?m [u] [v-
|
||||
1] |=2,m[u][v-1] & 48?W][v-1 ] & 15]]):0:0;u?m[u -1][v]|=1 ,m[
|
||||
u- 1][ v]& 48? W-1 ][v ]&
|
||||
15] ]):0:0;v< 255 ?m[ u][v+1]|=8,m[u][v+1]& 48? W][ v+1]&15]]
|
||||
):0 :0; u < 255 ?m[ u+1 ][v ]|=
|
||||
4,m[u+1][ v]&48?W+1][v]&15]]):0:0;W][ v]& 15] ]);}cu(char*q){ return
|
||||
*q ?cu (q+ 1)& 1?q [0] ++:
|
||||
q[0 ]-- :1; }d( int u , int/**/v, int/**/x, int y){ int
|
||||
Y=y -v, X=x -u; int S,s ;Y< 0?Y =-Y ,s,
|
||||
s=- 1:( s=1);X<0?X=-X,S =-1 :(S= 1); Y<<= 1;X<<=1; if(X>Y){
|
||||
int f=Y -(X >>1 );; while(u!= x){
|
||||
f>= 0?v+=s,f-=X:0;u +=S ;f+= Y;m[u][v]|=32;mvwaddch(w,v ,u, m[u
|
||||
][ v]& 64? 60: 46) ;if (m[ u][
|
||||
v]&16){c(u,v);; ;;; ;;; return;}} }else{int f=X -(Y>>1);; while
|
||||
(v !=y ){f >=0 ?u +=S, f-= Y:0
|
||||
;v +=s ;f+=X;m[u][v]|= 32;mvwaddch(w,v ,u,m[u][v]&64?60:46);if(m[u
|
||||
][ v]& 16) {c( u,v );
|
||||
; return;;;}}}}Z( int/**/a, int b){ }e( int/**/y,int/**/ x){
|
||||
int i ; for (i= a;i <=a
|
||||
+S;i++)d(y,x,i,b),d(y,x,i,b+L);for(i=b;i<=b+L;i++)d(y,x,a,i),d(y,x,a+ S,i
|
||||
); ;;; ;;; ;;; ;;; ;
|
||||
mvwaddch(w,x,y,64); ;;; ;;; ;;; prefresh( w,b,a,0,0 ,L- 1,S-1
|
||||
);} main( int V , char *C[
|
||||
] ){FILE*f= fopen(V==1?"arachnid.c"/**/ :C[ 1],"r");int/**/x,y,c,
|
||||
v=0 ;;; initscr (); Z(Z (raw
|
||||
() ,Z( curs_set(0),Z(1 ,noecho()))),keypad( stdscr,TRUE));w =newpad
|
||||
( 300, 300 ) ; for (x= 255 ; x >=0 ;x--
|
||||
) for (y= 255 ;y>=0;y-- )m[ x][ y]= 0;x=y=0;refresh( );while
|
||||
( (c= fgetc (f) )+1) {if(
|
||||
0||c==10|| x== 256){x=0;y++;if(y==256 )break;;} else{m[x][y]=(c ==
|
||||
'~' ?64 : c ==32 ?0: 16) ;;x ++;
|
||||
}}for(x=0 ;x< 256;x++)m [x][0]=16 ,m[ x][ 255]=16;for(y=0
|
||||
;y< 256 ; y ++) m[0 ][y ] = 16,
|
||||
m[255][y] =16 ;a=b=c=0; x=y =1; do{v++;mvwaddch (w, y,x ,m[
|
||||
x][ y]& 32? m[x ][y ] & 16?
|
||||
0| acs_map[l[m[x][y]&15]]:46 : 32);c==0152&&!(m[x][y+1]&16)?y++: 0;c
|
||||
== 107 &&! (m[ x][
|
||||
y- 1]& 16) ?y--:0;;c ==104 &&!(m[x-1][y]&16)?x--:0;c==108&&!(m[x+1
|
||||
][ y]& 16) ? x ++:0 ;if( c==
|
||||
3- 1+1 ){endwin( );; return(0) ;}x -a<5?a>S- 5?a-=S-5:(a=0):
|
||||
0;x -a> S-5?a<255 -S* 2?a +=S
|
||||
-5:(a=256-S):0; y-b<5?b>L-5?b-=L-5:(b =0) :0; y-b>L-5?b<255-L *2?
|
||||
b+= L-5 :(b =256
|
||||
-L) :0;e(x,y);if(m[x][y]&64)break;}while((c=getch())!=-1);endwin();cu(Q);
|
||||
printf(Q,v);}
|
||||
|
||||
Reference in new issue
Block a user