/* == Didimo == di Federico Macchi 29/09/1993 Questo robot staziona in un angolo per sparare in continuazione fin quando non viene disturbato, in tal caso cambia angolo. Corregge lo sparo di un 10% sulla distanza, a seconda che il robot nemico si stia allontanando o avvicinando Questo è il mio secondo robot, ed è lo stesso che ha partecipato lo scorso anno, sfiorando l'accesso alla finale. Purtroppo non avevo tenuto conto che i caratteri significativi per l'identificatore di una funzione sono solo sette, così che il mio robot, che staziona in due angoli differenti, era completamente imbelle in uno di questi. */ int danno, ang, new, old, d, x, y; /* new e old contengono la nuova e vecchia distanza del robot intercettato d è il quadrato della distanza da n punto x,y sono usate per calcolare le distanze */ main() { ang=0; drive(atan((loc_y()-50)*100000/(loc_x()-50))+180,100); /* Si porta verso l'angolo in basso a sinistra */ while(dist_a()>5000) sp_fondo(); while(1) { /* Routine principale */ drive(0,0); danno=damage(); while(!(damage()-danno)) sp_a(); drive(0,100); while(dist_b()>5000) sp_fondo(); drive(0,0); danno=damage(); while(!(damage()-danno)) sp_b(); drive(180,100); while(dist_a()>5000) sp_fondo(); } } dist_a() { x=loc_x()-50; y=loc_y()-50; d=x*x+y*y; return d; } dist_b() { x=950-loc_x(); y=loc_y()-50; d=x*x+y*y; return d; } sp_a() { if(new=scan(ang,10)) { /* Routine di sparo da ang. basso-sin */ if(new