/* PatCioca CRobot Roma 31/08/94 */ /* Scorre l' arena secondo una traiettoria verticale lungo il margine destro della arena fermandosi 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=0; while (loc_x()<940) { drive(0,100);fuocoright(); } drive(0,49); while (loc_x()<980) fuocoright(); while (loc_x()<990) { drive(0,19);fuocoright(); } drive(180,0); if (loc_y()>900) drive(270,25); /* evita di urtare un muro */ else drive(90,25); while (speed()>49) fuocoright(); drive(270,49);ang=270; while(1) { while (loc_y()>100) fuocoright(); /* spostamento in giu */ drive(270,49); while (loc_y()>30) fuocoright(); drive(90,0); angini=90;angfin=181; angolo(); drive(90,100);ang=90; /* spostamento in su */ while (loc_y()<900) fuocoright(); drive(90,49); while (loc_y()<970) fuocoright(); drive(270,0); angini=180;angfin=271; angolo(); drive(270,100);ang=270; } } angolo() /* routine di fermata e ricerca dell'avversario */ { dprec=damage(); ang=angini; while (damage()angfin) ang=angini; } } } spara() /* aggiusta il tiro ... */ { 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 (ra271) ang=90; } }