1994/fastfood.r

001/*
002    - fastfood.r        by Ugolini Oscar 1994 -
003    -------------------------------------------
004 
005    Ugolini Oscar
006 
007*/
008 
009int dir,rang,dam,idir,pran,pdir,no,rang1;
010 
011main()
012{
013    if (loc_y()<500) {
014        drive(270,100);pran=1500;
015        idir=540;dir=540;pdir=270;no=0;
016        while(loc_y()>60) spara3();
017        drive(270,0);while(speed()>49) spara();
018        drive(180,100);
019    } else {
020        drive(90,100);pran=1500;
021        idir=540;dir=540;pdir=90;no=2;
022        while(loc_y()<940) spara3();
023        drive(90,0);while(speed()>49) spara();
024        drive(0,100);
025    }
026    while(1) {
027        if (!no) {
028        idir=540;while(loc_x()>60) spara();                 
029        drive(180,0);while(speed()>49) spara2();
030        aspetta();                   
031        } else --no;
032 
033        if (!no) {
034        idir=450;while(loc_y()<940) spara();                
035        drive(90,0);while(speed()>49) spara2();
036        aspetta();        
037        } else --no;
038 
039        if (!no) {
040        idir=360;while(loc_x()<940) spara();                 
041        drive(0,0);while(speed()>49) spara2();
042        aspetta();                 
043        } else --no;
044 
045        if (!no) {
046        idir=630;while(loc_y()>60) spara();
047        drive(270,0);while(speed()>49) spara2();
048        aspetta();        
049        } else --no;
050    }
051}
052 
053spara()
054{
055    if (rang=scan(dir,10)) {
056        if (rang1=scan(dir-11,10)) {
057            cannon(dir-11,rang1);
058            dir-=11;
059        } else {
060            if (rang1=scan(dir+11,10)) {
061                cannon(dir+11,rang1);
062            } else if (rang>60) cannon(dir,rang-20);
063        }
064        pran=rang+100;
065    } else {
066        dir-=20;if (dir<idir-180) dir=idir;
067    }
068}
069  
070spara2()
071{
072    rang=scan(dir,10);
073    if (rang && rang<pran) {
074        if (rang1=scan(dir-12,10)) {
075            cannon(dir-12,rang1);
076            dir-=2;
077        } else {
078            if (rang1=scan(dir+12,10)) {
079                cannon(dir+12,rang1);
080                dir+=32;
081            } else cannon(dir,rang);
082        }
083        pran=rang+50;
084    } else {
085        dir-=20;if (dir<idir-180) { dir=idir-90;pran=1500; }
086    }
087}
088 
089spara3()
090{
091    if (rang=scan(dir,10)) {
092        cannon(dir+10,rang);pran=rang+100;
093        dir+=70;if (!speed()) drive(pdir,100);
094    } else {
095        dir-=20;if (dir<idir-360) dir=idir;
096    }
097}
098 
099aspetta()
100{
101    if (pran>500) {
102        if (rang=scan(idir-90,5)) cambiadir();
103        dam=damage();while(dam==damage()) spara2();
104        drive(idir-90,100);
105    } else {
106        drive(idir-90,100);
107        dir+=40;if (dir>idir) dir=idir;
108    }
109}
110 
111cambiadir()
112{
113    pdir=idir-135;drive(pdir,100);
114    if (idir==360) {
115        while(loc_x()>60 && loc_y()>60) spara3();                 
116    } else if (idir==450) {
117        while(loc_x()<940 && loc_y()>60) spara3();                 
118    } else if (idir==540) {
119        while(loc_x()<940 && loc_y()>940) spara3();                 
120    } else {
121        while(loc_x()>60 && loc_y()<940) spara3();                 
122    }
123    drive(pdir,0);no=2;pran=1500;while(speed()>49) spara3();
124    idir+=180;
125}