/* Nome :Sirio.r Autore :Ale De Leonardi Categoria :Microrobot Questo robot, che concorre per la categoria delle 500 istruzioni, Š liberamente ispirato a Raistlin.r, robot del 2001. Il corpo principale del programma Š rimasto pi— o meno invariato, fatte salve alcune modifiche necessarie per ridurre l'occupazione di codice, quali l'eliminazione della Stop(). Il calcolo dell'angolo verso cui accasarsi viene fatto a ogni oscillazione, perdendo preziosi cicli di CPU che, comunque, sono pi— o meno recuperati eliminando una chiamata alle routine di sparo durante il rallentamento. La scelta dell'oscillazione dipende dalla presenza o meno del nemico nell'angolo prescelto e dalla sua distanza. L'attacco avviene con un angolo di 30 gradi rispetto ai lati dell'arena. Ogni oscillazione Š comunque intervallata da un brevissimo run lungo la diagonale. Il conteggio dei superstiti Š effettuato ad ogni ciclo. Durante l'attaco finale Sirio cambia angolo costantemente, disegnando una specie di triangolo. */ int ang, dx, dy; int park, a, oang, r, or; int h, nx, ny, flag1, dan; int ang1, max, clock,rg; main() { while (Raggi(ang=(loc_x()>(dx=(loc_x(rg=850)>500)*960+20))*180+atan((((dy=(loc_y()>500)*960+20)-loc_y())*100000)/(dx-loc_x())),0)) { while (Dista(dx,dy)>4500) if (h>6500) Raggi(h<25000,100); if ((flag1<387)&&(dan=(damage(Raggi(Raggi(ang=45+180*(dy>500)+90*(dx!=dy),0),0))<80))) { flag1=8; while ((flag1+=20)<383) flag1-=(scan(flag1,10)>0); if (clock=66000-clock); else { r=(scan(ang-45,10)); or=(scan(ang+45,10)); if ((r)&&(or)) ang-=15-30*(r