/* __xxxxxxxxxxxxxxxx___. _gxXXXXXXXXXXXXXXXXXXXXXXXX!x_ __x!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!x_ ,gXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx_ ,gXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!_ _!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!. gXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXs ,!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!. g!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! iXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! ,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx !XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx ,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx !XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi dXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX !XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXf~~~VXXXXXXXXXXXXXXXXXXXXXXXXXXvvvvvvvvXXXXXXXXXXXXXX! !XXXXXXXXXXXXXXXf` 'XXXXXXXXXXXXXXXXXXXXXf` '~XXXXXXXXXXP vXXXXXXXXXXXX! !XXXXXXXXXXXXXXXXXX! !XXXXXXXXX XXXXXXXXXXv` 'VXXXXXXXXXXXXXXX !XXXXXXXX! !XXXXXXXXX. YXXXXXXXXXXXXX! XXXXXXXXX XXXXXXXXX! ,XXXXXXXXXXXXXX VXXXXXXX! 'XXXXXXXX! ,!XXXX ~~XXXXXXX iXXXXXX~ 'XXXXXXXX ,XXXXXX XXXXXXXX! xXXXXXX! !XXXXXXX!xxxxxxs______xXXXXXXX 'YXXXXXX! ,xXXXXXXXX YXXXXXXXXXXXXXXXXXXXXXXXXXXX` VXXXXXXX!s. __gxx!XXXXXXXXXP XXXXXXXXXXXXXXXXXXXXXXXXXX! 'XXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXP 'YXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXX! i !XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX! XX !XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXx_ iXX_,_dXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXP XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! ~vXvvvvXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXf 'VXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXvvvvvv~ 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX~ _ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXv` -XX! !XXXXXXX~XXXXXXXXXXXXXXXXXXXXXX~ Xxi YXX '~ XXXXX XXXXXXXXXXXXXXXXXXXX` iXX` !XX! !XXX` XXXXXXXXXXXXXXXXXXXX !XX !XXX '~Vf YXXXXXXXXXXXXXP YXXX !XXX !XXX ,_ !XXP YXXXfXXXX! XXX XXXV !XXX !XX 'XXP 'YXX! ,.!XXX! !XXXi!XP XX. ,_ !XXXXXX! iXXXx X! XX! !Xx. ,. xs.,XXi !XXXXXXf XXXXXXXXXXXXXXXXX! _!XXx dXXXXXXX.iXXXXXX VXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXX! YXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXV 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXf VXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXf VXXXXXXXXXXXXXXXXXXXXXXXXXXXXv` iLbEsTiO ~vXXXXXXXXXXXXXXXXXXXXXXXf` ~vXXXXXXXXXXXXXXXXv~ Y2K '~VvXXXXXXXV~~ ~~ TOURNAMENT iLbEsTiO.R by AinTz (p)1999 Autore: Enzo Maritati Tattica : simile a KakakaTz.R ma in certi momenti vibrante Particolarita' : uguali a KakakaTz.R Ringraziamenti : vedi KakakaTz.R Commenti : cercare su KakakaTz.r */ int oldang,range,ang,oldrng; /* angolo e distanza dell'avversario */ int dir; /* direzione in cui camminare */ int cambio,clock,disturbo; /* clock vale sempre 0 o 1, disturbo */ /* e' la distanza a cui arrivare a rompere le */ /* scatole e cambio serve per contare i robot */ /* nell'arena */ int sopra,destra; /* posizione nell'arena (valore 0 o 1) */ int flag,attacco; /* attacco puo' valere 0 o 1 e flag e' un */ /* contatore */ /******************************************/ /* */ /* Procedura Principale : */ /* */ /* Difesa ed Attacco */ /* */ /******************************************/ main() { int danni,dir2; /* danni = % danni subiti */ /* dir2 = variabile d'appoggio per dir */ vai(270-180*(loc_y(vai(180*(loc_x()<500)))>(cambio=500))); while(1) { danni=damage(); while((damage()<(danni+4)) && (!oldrng || oldrng>550)){ if (cambio>10) { ang=712+180*sopra+90*(sopra^destra); cambio=(flag=24); while(flag && (cambio>17)) if (scan(ang+15*((--flag)%8),7)) --cambio; if (cambio/=21) { if (damage(++attacco)<85) /* 90% */ while (drive(dir,100)) { serpiko(); if (--flag) if (loc_y()>700) frena(270); else if (loc_y()<300) frena(90); else if (loc_x()>700) frena(180); else if (loc_x()<300) frena(); else ; else frena(ang+135+90*(clock^=1)); } else while (1) vai(90+180*sopra); } else { serpiko(attacco=(ang+=18+70*clock)); /* se posso, attacco un poco il mio avversario statico */ /* altrimenti mi accontento di oscillare un po'... */ /* e' questa l'unica variante rispetto a KakakaTz! */ if (oldrng==range) disturbo=1600-range; else disturbo=841; serpiko(vai((dir2=dir+90*((ang%360)>(dir+45))))); disturbo=0; vai((dir2+180)%360); if (disturbo==841) if (range) clock^=1; else danni+=64; else if (damage(cambio=6)==danni) ; else danni=damage(clock^=1); attacco=0; } } serpiko(1); } vai(dir+90*(scan(dir+8,10)>(scan(dir+82,10)))); } } /******************************************/ /* */ /* Procedura Di Cambio Angolino */ /* o di Oscillazione in difesa */ /* */ /******************************************/ vai(newdir){ int limh1,limh2,liml1,liml2; drive((dir=newdir),100); liml1=(limh1=140+disturbo)-131; /* limiti x e y per lo spostamento */ liml2=(limh2=860-disturbo)+131; /* e/o oscillazione in attacco a 3 */ /* alto */ if (dir==270) { while(loc_y()>limh1) serpiko(); if (disturbo) ; else { drive(270,50); while(loc_y()>liml1); sopra=0; } } /* basso */ else if (dir==90) { while(loc_y()limh1) serpiko(); if (disturbo) ; else { drive(180,50); while(loc_x()>liml1); destra=0; } } /* destra */ else { while(loc_x()50) ; return (dir=180*sopra+90*(sopra^destra)); } /******************************************/ /* */ /* Procedura Di Frenata */ /* contro un solo avversario */ /* */ /* Con sparo veloce senza particolari */ /* correzioni. */ /* */ /******************************************/ frena(newdir) { drive(newdir,(flag=3)); /* freno */ while (speed()>50) { /* finche' freno sparo (ma veloce) */ if (oldrng=scan(ang,10)) { if (range=scan((ang=(6*(scan((ang+=(10*(scan((oldang=ang)+10,10)>0)-5))+10,10)>0)-3)+ang),10)) cannon(ang+(ang-oldang),range+(range-oldrng)*2); } } return (drive((dir=newdir),100)); /* riaccelero */ } /******************************************/ /* */ /* Procedura Di Sparo Preciso */ /* */ /* Con e senza correzione sulla direzione */ /* in cui si cammina. */ /* */ /******************************************/ serpiko(fermo) { if (oldrng=scan(ang,10)); /* se non sto puntando un nemico */ else if (oldrng=scan(ang-=21,10)); /* ne cerco un'altro */ else if (oldrng=scan(ang+=42,10)); else return (ang+=42); if (oldrng<120) return (cannon(ang,oldrng)); /* se e' troppo vicino lo sparo subito */ if (attacco) ; /* se sto attaccando non cambio obiettivo */ else if (oldrng>735) { ang+=42; return ++cambio; } if (scan(ang-=5,5)); else ang+=10; /* affinamento del tiro */ if (scan(ang+5,2)) ang+=5; if (scan(ang-5,2)) ang-=5; if (scan(ang+3,1)) ang+=3; if (scan(ang-3,1)) ang-=3; if (scan(ang+1,1)) ang+=1; if (scan(ang-1,1)) ang-=1; if (oldrng=scan(oldang=ang,5)) { if (scan(ang+5,2)) ang+=5; if (scan(ang-5,2)) ang-=5; if (scan(ang+3,1)) ang+=3; if (scan(ang-3,1)) ang-=3; if (scan(ang+1,1)) ang+=1; if (scan(ang-1,1)) ang-=1; if (range=scan(ang,10)) if (fermo) return cannon(ang+(ang-oldang)*((1200+range)>>9),range*172/(172+oldrng-range)); else /* sparo senza correzione sulla direzione di movimento */ return cannon(ang+(ang-oldang)*((1200+range)>>9)-(sin(ang-dir)>>14),range*172/(172+oldrng-range-(cos(ang-dir)>>12))); } /* sparo con correzione sulla direzione di movimento */ } /* Tutto qui? Provare per credere!!! *.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*. ... quante lacrime mi dai...? le stelle stanno in cielo ne dimostro di meno! i sogni non lo so... Non avevo pianto mai... ...so solo che sono pochi ... prima di essere uomo. quelli che si avverano. (D.Silvestri) (V.Rossi) ____ \%%%%%%;. \%%%%%%%%;.. .\. (%%%%%%%%%%%%;. .;%%%;. %%%%%%%%%%%%%%%%%;. %%%%%%%%; %%%%%%%%%%%%%%%%%%%%%;. %%%%%%%%%)__(%%%%%%%%%%%%%%%%%%%%%%%%;. ;%%%%%% /%%%%%\ %%%%%%%%%%%%%%%%%%%%%%%; \%% /%/'''\%%%\ %%%%%%%%%%%%%%%%%%%%%%%; '%%%%%%%\. \%%|/%%%%%%%%%%%%%%%%%%%%%%; %% .;%%%%%%%%%%\|%%%%%%%%%%%%%%%%%%%%%%%%%% %%% (%CCC%%%%CCC%\%%%%%%%%%%%%%%%%%%%%%%%%%/ %%%% %% !/ \%%%%%%%%%%%%%%%%%%%%%%/ %%%%%% .% %%% \%%%%%%%%%%%%%/'%%%%%%%%% .__\\/__. .%%% o o %%%% %%%%%%%%%%%/'%%%%%%%%%%% \.;%%%%%%%%%;.'%% %%%% ,%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%/ %___.!. /%%%% ,%%%%%%%% \%%%%%%%%%%%%% \%% %%% %%/ %%%%%%\ /%%%% ,%%%%%%%%% |%%%%%%%%%%%%% /%% %%% %% %%%%%%%)?**&%%%% ,%%%%%%%%%%; |%%%%%%%%%%%%% %% %%% %% %%%%%%%%%%%%%/ ,%%%%%%%%%%%/ /%%%%%%%%%%%%%% /%%% %%%%% %%% %%%%%%%;/',;/%%%%%%%%%;;../%%%%%%%%%%%%%%%%% %%%%%%/'''\%%%%%% ='''\\ \%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //'' ''\\ .o0O iLbEsTiO Rulez O0o. */