1994/fastfood.r
001 | /* |
002 | - fastfood.r by Ugolini Oscar 1994 - |
003 | ------------------------------------------- |
004 |
005 | Ugolini Oscar |
006 |
007 | */ |
008 |
009 | int dir,rang,dam,idir,pran,pdir,no,rang1; |
010 |
011 | main() |
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 |
053 | spara() |
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 | |
070 | spara2() |
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 |
089 | spara3() |
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 |
099 | aspetta() |
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 |
111 | cambiadir() |
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 | } |