/* Polipo CRobot Roma 03/08/94 */ /* Scorre l' arena secondo una traiettoria verticale sul lato sinistro ed effettua delle fermate agli angoli. La routine di fuoco e' ottimizzata sia rispetto alla gittata che rispetto all'angolo ed e' ricavata dal precedente robot Poirot.r. Cristiano De Mei */ int ang,rp,dprec,angini,angfin,ra,distanza,nonhosparato,continua,angp; main() { ang=0;angp=180; while (loc_x()>60) { drive(180,100);fuocolefth(); } drive(180,49); while (loc_x()>20) fuocolefth(); while (loc_x()>10) { drive(180,19);fuocolefth(); } drive(0,0); if (loc_y()>900) drive(270,25); else drive(90,25); while (speed()>49) fuocolefth(); drive(270,49);ang=270; while(1) { while (loc_y()>100) fuocolefth(); /* vai giu */ drive(270,49); while (loc_y()>30) fuocolefth(); drive(90,0); angini=0;angfin=91; angolo(); drive(90,100);ang=90; /* vai su */ while (loc_y()<900) fuocolefth(); drive(90,49); while (loc_y()<970) fuocolefth(); drive(270,0); angini=270;angfin=361; angolo(); drive(270,100);ang=270; } } angolo() /* fermati e cerca gli avversari */ { dprec=damage(); ang=angini; while (damage()angfin) ang=angini; } } } spara() /* routine di aggiustamento della mira */ { if (ra=scan(ang,3)) { if ((rp-ra>160) || (ra-rp>160)) distanza=ra; else if (ra>rp+5) distanza=ra*8/7; else if (rarp+15) cannon(ang,8*ra/7); else if (rarp+15) cannon(ang+5,8*ra/7); else if (rarp+15) cannon(ang-5,8*ra/7); else if (ra