/* Nome : Vauban.r Versione : 1.0 Autore : Angelo Ciufo Versione ridotta di Colosseum.r */ int vel,r_coord,x_pos,y_pos; int ang,a,r,or; int time,run,d,gradi,conta; int oa,lim,cl; main() { r_coord=822; while (run+=conta=gradi=10) { if (damage()>80) r_coord=837; x_pos=(loc_y(y_pos=(loc_x()<(vel=500))*(r_coord-=15*(++time>6)))<500)*r_coord; while ((loc_x()%890)>110) spara(ang=(loc_x()<500)*180); vel=0; spara(ang); while ((loc_y(vel=100)%890)>110) spara(ang=90+(loc_y()<500)*180); vel=0; spara(ang); while (((gradi+=21)<390)&&(conta<12)) if (scan(gradi,10)>0) {++conta;spara(a=ang=gradi);} vel=100; while (conta<12) { while (1) { while (loc_x()<=500) spara(0); Turn(90); while (loc_y()<=500) spara(90); Turn(180); while (loc_x()>500) spara(180); Turn(270); while (loc_y()>500) spara(270); Turn(0); } } while (--run) { while(loc_y() <910-x_pos) spara(90); while(loc_x() >r_coord-y_pos+90) spara(180); while(loc_y() >r_coord-x_pos+90) spara(270); while(loc_x() <910-y_pos) spara(0); } } } spara(dir) int dir; { drive (dir,vel); if(or=scan(oa=a,10)) { if (r=scan(a,4)) return cannon(a,3*scan(a,10)-r-or); else if (r=scan(a-=7,3)) return cannon(a-6,3*scan(a,10)-r-or); else if (r=scan(a+=16,4)) return cannon(a+6,3*scan(a,10)-r-or); else return 1; } else if(scan(a+=21,10)); else if(scan(a-=42,10)); else if(scan(dir,10)) a=dir; else return (a+=84); } Turn(d) { while (speed()>70) drive(d,0); }