/* R U D O L F 8
Programmato da: Alessandro Carlin
Certo non poteva mancare il seguito della stirpe Rudolf... peccato che sia
solo un' involuzione di Zorn, molto piu' difensivista e svogliato...
Sara' per la prossima...
*/
int asb,asa,ss,dimitri,tt,dp,d,or,ul,ll,b,tempo,oscar,xora,flag,flag1,daa,rng,t,oldr,deg,odeg,dist;
main(){
if ((asb=(loc_y(tt=0)>500))) up(920); else dn(80);
if ((asa=(loc_x(t=11)>500))) dx(920); else sx(80);
b=asb*2+(asb!=asa);
ll=90*b-35;
ul=ll+142;
flag=ll;
flag1=2;
while (flag
0);
t=10002*((flag1));
or=1;
while(t<10000){
daa=damage(++t);
if (loc_x()>500){
while(speed()>49);
drive(d=180,100);
xora=loc_x()-45;
sx(xora);
if(b==1) {up(loc_y()+45);}
else {dn(loc_y()-45);}
d=90+180*(loc_y()>500);
dp=d;dp=d;dp=d;
dx(920);
if(b==1) {d=90;d=90;d=90;d=90;dn(80);}
else {d=270;d=270;d=270;d=270;up(920);}
}
else {
while(speed()>49);
drive(d=360,100);
xora=loc_x()+45;
dx(xora);
if(b==0) {up(loc_y()+45);}
else {dn(loc_y()-45);}
d=90+60*b;
dp=d;dp=d;dp=d;
sx(80);
if(b==0) {d=90;d=90;d=90;d=90;dn(80);}
else {d=270;d=270;d=270;d=270;up(920);}
}
if ((t>3&&!(oldr<800)||t>6))
{
flag=ll;
flag1=2;
while (flag0);
t=10002*((flag1));
}
}
fine();
}
up(limt) {while(loc_y()limt) {drive(270,100);Fire();}drive(270,0);}
dx(limt) {while(loc_x()limt) {drive(180,100);Fire();}drive(180,0);}
Fire() {
if((oldr=scan(deg,10))&&(oldr<835))
{
if (oldr=scan(deg,4)){if (!(scan(deg+=2,2))) deg-=4;}
else if (oldr=scan(deg-=7,4)){if (!(scan(deg+=2,2))) deg-=4;}
else if (oldr=scan(deg+=14,4)){if (!(scan(deg+=2,2))) deg-=4;}
else return;
cannon (deg,oldr);
}
else
if(scan(deg+=20,10));
else
if(scan(deg-=40,10));
else
if(scan(d,10)) deg=d;
else
return (deg+=80);
}
Fuoco()
{
if (oldr=scan(odeg=deg,10)) {
if (scan(deg-=7,4)){if (!(scan(deg+=2,2))) deg-=4; return(cannon(deg+(deg-odeg),2*scan(deg,10)-oldr));}
if (scan(deg+=14,4)){if (!(scan(deg-=2,2))) deg+=4; return(cannon(deg+(deg-odeg),2*scan(deg,10)-oldr));}
if (scan(deg-=7,4)){if (!(scan(deg+=2,2))) deg-=4; return(cannon(deg+(deg-odeg),2*scan(deg,10)-oldr));}
}
else {
if (oldr=scan(deg+=340,10)) return cannon(deg,oldr);
if (oldr=scan(deg+=40,10)) return cannon(deg,oldr);
if (oldr=scan(deg+=300,10)) return cannon(deg,oldr);
if (oldr=scan(deg+=80,10)) return cannon(deg,oldr);
if (oldr=scan(deg+=260,10)) return cannon(deg,oldr);
if (oldr=scan(deg+=120,10)) return cannon(deg,oldr);
deg+=80;
}
}
udo(){
while(loc_x()>500) {while(loc_y()>885) {drive(240,100);Fuoco();}
while(loc_y()<885) {drive(120,100);Fuoco();}
}
}
uso(){
while(loc_x()<500) {while(loc_y()>885) {drive(300,100);Fuoco();}
while(loc_y()<885) {drive(60,100);Fuoco();}
}
}
ddo(){
while(loc_x()>500) {while(loc_y()>115) {drive(240,100);Fuoco();}
while(loc_y()<115) {drive(120,100);Fuoco();}
}
}
dso(){
while(loc_x()<500) {while(loc_y()>115) {drive(300,100);Fuoco();}
while(loc_y()<115) {drive(60,100);Fuoco();}
}
}
fine()
{
if (b==0) dso();
else if (b==1) ddo();
else if (b==2) udo();
else uso();
daa=damage();
if(b>1){
while(loc_y()>150) {drive(270,100);Fuocoe();
}
}
else{
while(loc_y()<850) {drive(90,100);Fuocoe();
}
}
daa-=5;
while (damage()<(daa+16)) {
daa=damage();
while(loc_y()>150) {drive(270,100);Fuocoe();
}
while(loc_y()<850) {drive(90,100);Fuocoe();
}
}
while(1)
{
while(loc_y()>150) {while(loc_x()>500) {drive(190,100);Fuoco();}
while(loc_x()<500) {drive(350,100);Fuoco();}
}
while(loc_y()<850) {
while(loc_x()>500) {drive(170,100);Fuoco();}
while(loc_x()<500) {drive(10,100);Fuoco();}
}
}
}
Fuocoe()
{
if (oldr=scan(odeg=deg,10)) {
if (scan(deg-=7,4)){if (!(scan(deg+=2,2))) deg-=4; return(cannon(deg+(deg-odeg),2*scan(deg,10)-oldr));}
if (scan(deg+=14,4)){if (!(scan(deg-=2,2))) deg+=4; return(cannon(deg+(deg-odeg),2*scan(deg,10)-oldr));}
if (scan(deg-=7,4)){if (!(scan(deg+=2,2))) deg-=4; return(cannon(deg+(deg-odeg),2*scan(deg,10)-oldr));}
}
else {
if (oldr=scan(deg+=340,10)) return cannon(deg,oldr);
if (oldr=scan(deg+=40,10)) return cannon(deg,oldr);
if (oldr=scan(deg+=300,10)) return cannon(deg,oldr);
if (oldr=scan(deg+=80,10)) return cannon(deg,oldr);
if (oldr=scan(deg+=260,10)) return cannon(deg,oldr);
if (oldr=scan(deg+=120,10)) return cannon(deg,oldr);
deg+=80;
}
}