2013/wall-e_iv.r
001 | /* |
002 | ..................................................................,$77777$:..... |
003 | .................................................................7777777777$.... |
004 | .,MM...MMM..MMM....MMMMMMMMMM....MMM......... MMM...............7,.........~7... |
005 | .,MM...MMM..MMM....MMD.....MMM ..MMM..........MMM..............$7...7777777$7$.. |
006 | .,MM...MMM..MMM. MMN?????MMM...MMM..........MMM.........MMM..77. ........777.. |
007 | .,MM...MMM..MMM. ..MMMMMMMMMMM .MMM..........MMM..........8...77...7777777$77.. |
008 | .,MMMMMMMMMMMMM....MMD.. MMM MMMMMMMMMMM .MMMMMMMMMM$......:7.. ......~7~.. |
009 | ................................... ... ... ........... ...777777777777~... |
010 | ................. ...........................$7777777$..... |
011 | .............. ................. ... .............. |
012 | ........ ................................ |
013 | ....... ..... |
014 | ...... .. ..... ..... |
015 | ...... ........:=,:~+...... |
016 | .. ......=+++I?O$8D8DZ$ON~..... |
017 | ... ....77?I77888OO?NNNI8NDMZN7.... |
018 | .. ..IIIZIDZZI8ODNMMN8N8ONMMM7OM.... |
019 | ...DDD8O887=ZMMDNNNMONMMDDNM=?N.... |
020 | ....8DND8DD$?+DNMNDOONN8NNN87=?N.... |
021 | ...$MDDDD7==+7DOZDNNNNO7I+==+N.... |
022 | ...:?DDDD7IZ+I8Z..+DDDDZI7ID... |
023 | .......I8DO8Z8O......... ... . |
024 | ...........?8D8............ |
025 | ............ZDOOO~........... .. |
026 | ..... .............DDMOD............ .... |
027 | .. ..... ..+=~,..... ...7ZZD~.............. ....... |
028 | .... ..~~:~~,?7MND+?Z$O8ZDIZZZZ~==IO,........... ......... |
029 | .... .:::::~~=I$OON$~::~=7DD8OZOOO88OOOO77$$Z$77I7........... |
030 | .... .~::~:::~~?=~=~:::~::::I7Z$ODZ7+I+7+??+++=$=:: .......... |
031 | .... .$O7??~~+=,?::~::::::,:?I$:I+DZ=~I+Z=$O8??$7O8~............ |
032 | .... Z7777777$Z?+=::~:=,,,,,77,~+DDZ=788OD8DZ88O7I8=+8I?=....... |
033 | .... .ZZ$$O$7777II$7I$Z,,..,,::::$8O=IN8DDDNN88D8887?8?+8OI?++:.. |
034 | .... .OZZ$Z$$$$777II77I::,,,,:,,:,?88=Z~?$I8OZ?II$7O+8Z+87ODD8??.. |
035 | .... .,$ZZ$ZZ$$$$$7I$$7I,,,,,,,..,,~8O??7$?+$77O$8ZOONZ..=OO8DD8+.. |
036 | .......$ZZZZZ$$Z$$$$$$$$~,:,,:,,,,,,:ZZI?I+I+7$8ZO$I7DNI....NDONN8O. |
037 | ......7OZZOZOO$$$$$$$$$$~,,:,,.,,,,:$Z87++II7$77IZI778N?....DDD~8O:. |
038 | ......NZOOZZZZZZZZZ$$$7~,:,:,::,,,,,O878N$7?++???7???ON$...I888IOI . |
039 | ......OOOOODZZZZZZ$Z$$?I~,,,,,,::,,ZZD7$7===+++++I+==ZD7.......:O... |
040 | ... ..D88OOOOO88ZZZ$II?I+=:==,:::ZID$7II=7788O$D8$OZO8$............ |
041 | .... ....:DD8OOZOZZ8II?IIZI?=~~~+8DOO7=I+7O8MO778DDD$OZO........... |
042 | .... .. .=ND88OO77$IIII?III??88NDZI~I+ZO8DODZO7DND8DO$.......... |
043 | .... 8DN8DD8DD88$$Z$IIII?OO88DD$D8DD8ONOMD88ZOOONN$O+........ |
044 | .DDDDON8DOOONN88O$$$7MDZINNOO8D88N8O8DONN88ZDMDMND8....... |
045 | .DD8DDDD8ON8DD8MDM8DDNNNNN88DNN88N88ZOZDDNON8N$?7NNO...... |
046 | ..D8ND8D8ODNDDD8NDND8DNNNN8NMMNNO$NNNOD8OONMMMNOZ88DDO. |
047 | ..MDDODDDMMDNMNDNNNDMNMNNN.,,,NN88O888D8$D..O8D8OZ7ONN+ |
048 | .DD8NNNNMNNNNNNMMNMNMND$II?Z8O8ND8NMDD?8OD8DNNDM?ONND. |
049 | ~==?NNNDNNNNNNNMNNND8OOZ$$77O$Z8N888D88$ZND8DNDZ$O$88N~. |
050 | ..=+?I77$ODDNND88OOOOOZZZZ$$$8DNDDODZD87$$ODZDMN87ZNDDD: |
051 | ,===+??III77$$$$$ZZZZZZ$$$$$$D88O888DD8O$Z88OOZ8MD8NN8DN.. |
052 | .~==+??III777777$$$$$$$$$$$$$$DNNDDN8OZZ888DOOON8MMDDDN. |
053 | .... . ,~+??IIIIII777777777777777IDNDNDDDDDDDDN8O888MDND8N~..... |
054 | .... .....,,,,~????IIIIIIIIII=,,,,.~IINDDDNNDONN8DOMN888DNI,,,,.... |
055 | .... ........,,,,,:+???+~,,,,,,,,,,+??IIOMNNDDNON8N888N=:,,,,,,,.... |
056 | .... ..... ,,,,,,,,,,,,,,,,,,,,,,,,~???III7$8NNDNDNI,,,,,.,.,,,.. |
057 | .... .......,,,,,,,,,,.,,..,,,,,,,,,,,,,:=????III,,..,,,,,,.,,,,. |
058 | .,,,,,,,,,,,,,,..,.........,,.,,,,,,,,,,,,,,,,,,,,,,,,.,,,,.. |
059 | .,,,,,,,,,,,,,,.............,,,,,,,,,,,,,,,,,,,,,,,..,,,,,.. |
060 | .,,,,,,,,,,,,,,,.,..........,,,,....,,,,,,,,.,,,.,,,..,,,. |
061 | . ,,,,,,,,,,,,,,,,,,..........,,,,.....,,,,,,,,,,,,,,,,,,. .~ ++=.~=. |
062 | .,,,,,,,,,,,,,,,,............,,,.....,,,,,,,,,,,,,,... . ... .. |
063 | ,,,,,,,,,,,,,,,,............,,,,,,..,,,,,,,,,,,,,.... |
064 |
065 | Crobot : Wall-E |
066 | Type : Micro |
067 | Version : 4.01 |
068 | Author : Maurizio Camangi |
069 | Begin : 14-02-2012 |
070 | Revision : 06-03-2012 |
071 |
072 | Wall-E IV eredita quasi tutto da Wall-E III, con un innesto di Lycan. |
073 | Wall-E IV perde l'uso delle variabili bidimensionali (vettori): coreografiche e |
074 | superflue. |
075 | */ |
076 | int ang, /* Angolo di scanning */ |
077 | oang, /* Angolo di scanning precedente */ |
078 | range, /* Gittata */ |
079 | dir, /* Direzione del cammino */ |
080 | posx, |
081 | posy, /* Variabili temporanee ad un bit salva posizione */ |
082 | flag,b, /* Flag di stato */ |
083 | m, /* Flag correggi ampiezza sparo */ |
084 | timer, /* Timer e numero nemici */ |
085 | deg, /* Inizio scansione conta nemici */ |
086 | i,a; /* Variabile temporanea */ |
087 |
088 | fire(dir,v) |
089 | { |
090 | drive(dir,v); |
091 | if (range=scan(oang=ang,10)) |
092 | { |
093 | if (scan(ang-8,5)) |
094 | { |
095 | if (scan(ang-=5,2)) ; |
096 | else ang-=4; |
097 | } |
098 | else |
099 | { |
100 | if (scan(ang+8,5)) |
101 | { |
102 | if (scan(ang+=5,2)) ; |
103 | else ang+=4; |
104 | } |
105 | else |
106 | { |
107 | if (scan(ang,1)) ; |
108 | else if (scan(ang-=3,2)) ; else ang+=6; |
109 | } |
110 | } |
111 | return (cannon(ang+m*(ang-oang),(scan(ang,10)<<1)-range)); |
112 | } |
113 | else |
114 | { |
115 | if (range=scan(ang+=20,10)) cannon(ang,range); |
116 | else if (range=scan(ang-=40,10)) cannon(ang,range); |
117 | else ang+=80; |
118 | } |
119 | } |
120 |
121 | runX() |
122 | { |
123 | dir=180*!posx; |
124 | if (posx) while (loc_x()<880) fire(dir,100); |
125 | else while (loc_x()>120) fire(dir,100); |
126 | fire(dir,0); |
127 | } |
128 |
129 | runY() |
130 | { |
131 | dir=270-180*posy; |
132 | if (posy) while (loc_y()<880) fire(dir,100); |
133 | else while (loc_y()>120) fire(dir,100); |
134 | fire(dir,0); |
135 | } |
136 |
137 | corner() |
138 | { |
139 | if (flag^posx^posy) runY(runX()); else runX(runY()); |
140 | } |
141 |
142 | int look() |
143 | { |
144 | if (scan(a=deg+90*flag,10)) ang=a; |
145 | return 6; |
146 | } |
147 |
148 | main() /* Inizializza alcune variabili ed innesca la routine principale */ |
149 | { |
150 | corner(posy=loc_y(posx=loc_x()>499)>499); |
151 | deg=90*((posy<<1)+(posx^posy)); |
152 | while (1) |
153 | { |
154 | while ((timer<2) && (i < 140)) { timer+=(scan(deg+i,10)>0); i+=20; } |
155 | if (timer<2) |
156 | { |
157 | m=1; |
158 | while (1) |
159 | { |
160 | if (((posx=loc_x())%880)<120) dir=180*(posx>500); |
161 | else if (((posy=loc_y())%880)<120) dir=90+180*(posy>500); |
162 | else if (range>610) dir=ang+15; |
163 | else if (range<180) dir=ang+180; |
164 | else dir=ang+180*(b^=1); |
165 | |
166 | fire(dir,100); |
167 | fire(dir,100); |
168 | fire(dir,100); |
169 | } |
170 | } |
171 | else |
172 | timer=look(dir=(deg+(30<<flag))); |
173 | while (--timer) fire(dir,100); |
174 | corner(i=0); flag^=1; |
175 | } |
176 | } |