/* ..................................................................,$77777$:..... .................................................................7777777777$.... .,MM...MMM..MMM....MMMMMMMMMM....MMM......... MMM...............7,.........~7... .,MM...MMM..MMM....MMD.....MMM ..MMM..........MMM..............$7...7777777$7$.. .,MM...MMM..MMM. MMN?????MMM...MMM..........MMM.........MMM..77. ........777.. .,MM...MMM..MMM. ..MMMMMMMMMMM .MMM..........MMM..........8...77...7777777$77.. .,MMMMMMMMMMMMM....MMD.. MMM MMMMMMMMMMM .MMMMMMMMMM$......:7.. ......~7~.. ................................... ... ... ........... ...777777777777~... ................. ...........................$7777777$..... .............. ................. ... .............. ........ ................................ ....... ..... ...... .. ..... ..... ...... ........:=,:~+...... .. ......=+++I?O$8D8DZ$ON~..... ... ....77?I77888OO?NNNI8NDMZN7.... .. ..IIIZIDZZI8ODNMMN8N8ONMMM7OM.... ...DDD8O887=ZMMDNNNMONMMDDNM=?N.... ....8DND8DD$?+DNMNDOONN8NNN87=?N.... ...$MDDDD7==+7DOZDNNNNO7I+==+N.... ...:?DDDD7IZ+I8Z..+DDDDZI7ID... .......I8DO8Z8O......... ... . ...........?8D8............ ............ZDOOO~........... .. ..... .............DDMOD............ .... .. ..... ..+=~,..... ...7ZZD~.............. ....... .... ..~~:~~,?7MND+?Z$O8ZDIZZZZ~==IO,........... ......... .... .:::::~~=I$OON$~::~=7DD8OZOOO88OOOO77$$Z$77I7........... .... .~::~:::~~?=~=~:::~::::I7Z$ODZ7+I+7+??+++=$=:: .......... .... .$O7??~~+=,?::~::::::,:?I$:I+DZ=~I+Z=$O8??$7O8~............ .... Z7777777$Z?+=::~:=,,,,,77,~+DDZ=788OD8DZ88O7I8=+8I?=....... .... .ZZ$$O$7777II$7I$Z,,..,,::::$8O=IN8DDDNN88D8887?8?+8OI?++:.. .... .OZZ$Z$$$$777II77I::,,,,:,,:,?88=Z~?$I8OZ?II$7O+8Z+87ODD8??.. .... .,$ZZ$ZZ$$$$$7I$$7I,,,,,,,..,,~8O??7$?+$77O$8ZOONZ..=OO8DD8+.. .......$ZZZZZ$$Z$$$$$$$$~,:,,:,,,,,,:ZZI?I+I+7$8ZO$I7DNI....NDONN8O. ......7OZZOZOO$$$$$$$$$$~,,:,,.,,,,:$Z87++II7$77IZI778N?....DDD~8O:. ......NZOOZZZZZZZZZ$$$7~,:,:,::,,,,,O878N$7?++???7???ON$...I888IOI . ......OOOOODZZZZZZ$Z$$?I~,,,,,,::,,ZZD7$7===+++++I+==ZD7.......:O... ... ..D88OOOOO88ZZZ$II?I+=:==,:::ZID$7II=7788O$D8$OZO8$............ .... ....:DD8OOZOZZ8II?IIZI?=~~~+8DOO7=I+7O8MO778DDD$OZO........... .... .. .=ND88OO77$IIII?III??88NDZI~I+ZO8DODZO7DND8DO$.......... .... 8DN8DD8DD88$$Z$IIII?OO88DD$D8DD8ONOMD88ZOOONN$O+........ .DDDDON8DOOONN88O$$$7MDZINNOO8D88N8O8DONN88ZDMDMND8....... .DD8DDDD8ON8DD8MDM8DDNNNNN88DNN88N88ZOZDDNON8N$?7NNO...... ..D8ND8D8ODNDDD8NDND8DNNNN8NMMNNO$NNNOD8OONMMMNOZ88DDO. ..MDDODDDMMDNMNDNNNDMNMNNN.,,,NN88O888D8$D..O8D8OZ7ONN+ .DD8NNNNMNNNNNNMMNMNMND$II?Z8O8ND8NMDD?8OD8DNNDM?ONND. ~==?NNNDNNNNNNNMNNND8OOZ$$77O$Z8N888D88$ZND8DNDZ$O$88N~. ..=+?I77$ODDNND88OOOOOZZZZ$$$8DNDDODZD87$$ODZDMN87ZNDDD: ,===+??III77$$$$$ZZZZZZ$$$$$$D88O888DD8O$Z88OOZ8MD8NN8DN.. .~==+??III777777$$$$$$$$$$$$$$DNNDDN8OZZ888DOOON8MMDDDN. .... . ,~+??IIIIII777777777777777IDNDNDDDDDDDDN8O888MDND8N~..... .... .....,,,,~????IIIIIIIIII=,,,,.~IINDDDNNDONN8DOMN888DNI,,,,.... .... ........,,,,,:+???+~,,,,,,,,,,+??IIOMNNDDNON8N888N=:,,,,,,,.... .... ..... ,,,,,,,,,,,,,,,,,,,,,,,,~???III7$8NNDNDNI,,,,,.,.,,,.. .... .......,,,,,,,,,,.,,..,,,,,,,,,,,,,:=????III,,..,,,,,,.,,,,. .,,,,,,,,,,,,,,..,.........,,.,,,,,,,,,,,,,,,,,,,,,,,,.,,,,.. .,,,,,,,,,,,,,,.............,,,,,,,,,,,,,,,,,,,,,,,..,,,,,.. .,,,,,,,,,,,,,,,.,..........,,,,....,,,,,,,,.,,,.,,,..,,,. . ,,,,,,,,,,,,,,,,,,..........,,,,.....,,,,,,,,,,,,,,,,,,. .~ ++=.~=. .,,,,,,,,,,,,,,,,............,,,.....,,,,,,,,,,,,,,... . ... .. ,,,,,,,,,,,,,,,,............,,,,,,..,,,,,,,,,,,,,.... Crobot : Wall-E Type : Micro Version : 2.03 Author : Maurizio Camangi Begin : 07-05-2010 Revision : 26-01-2011 Wall-E II è una riparametrizzazione di Wall-E con un differente F2F. F2F : una versione più compressa del f2f boom-style di Copia.r. */ int ang, /* Angolo di scanning */ oang, /* Angolo di scanning precedente */ range, /* Gittata */ dir, /* Direzione del cammino */ posx, posy, /* Variabili temporanee ad un bit salva posizione */ dvector, /* Array bidimensionale */ x,y, /* Coordinate del corner */ flag, /* Flag di stato */ m, /* Flag correggi ampiezza sparo */ timer, /* Timer e numero nemici */ deg, /* Inizio scansione conta nemici */ i; /* Variabile temporanea */ fire(d) { drive(d,100); if ((range=scan(oang=ang,10))&&(range<850)) { if (scan(ang-8,5)) { if (scan(ang-=5,2)) ; else ang-=4; return(cannon(ang+(ang-oang),2*scan(ang,10)-range)); } if (scan(ang+8,5)) { if (scan(ang+=5,2)) ; else ang+=4; return(cannon(ang+(ang-oang),2*scan(ang,10)-range)); } if (scan(ang,10)) { if (scan(ang-=2,2)) ; else ang+=4; return(cannon(ang+m*(ang-oang),2*scan(ang,10)-range)); } } else if(scan(ang+=20,10)); else if(scan(ang-=40,10)); else if(scan(dir,10)) ang=dir; else ang+=80; } degree(x,y) int x,y; { return(dir=(360+((x-=loc_x())<0)*180+atan(((y-loc_y())*100000)/x))); } dista(dx,dy) /* Distanza al quadrato (evita una sqrt()) */ int dx,dy; { return (((dx-=loc_x())*dx+(dy-=loc_y())*dy)); } corner() { degree(x,y); while(dista(x,y) > 6400) fire(dir); drive(dir, i=0); } main() /* Inizializza alcune variabili ed innesca la routine principale */ { int b; corner(y=20+960*(posy=loc_y(x=20+960*(posx=loc_x()>499))>499)); dvector=(deg=(90*((posy<<1)+(posx^posy))))+30; dvector|=((dvector+30)<<16); while (1) { while((timer<2) && (i < 140)) { timer+=(scan(deg+i,10)>0); i+=20; } if (timer<2) { m=1; while(1) { /*attacco del f2f*/ if (((posx=loc_x())%880)<120) dir=180*(posx>500); else if (((posy=loc_y())%880)<120) dir=90+180*(posy>500); else if (range>600) dir=ang+25; else if (range<150) dir=ang+195; else dir=ang+180*(b^=1); fire(dir); fire(dir); fire(dir); } } else timer=8<<(damage(dir=(dvector>>flag)&65535)<40); while(--timer) fire(dir); corner(drive(dir, flag^=16)); } }