1998/plump.r
01 | /********************************************************************** |
02 | * Nome Robot : plump.r * |
03 | * Autore : Sergio Chersovani * |
04 | * Strategia : si muove lungo i lati nord e est modificando gli * |
05 | * spostamenti in funzione della posizione del nemico * |
06 | * con una buona precisione di tiro * |
07 | **********************************************************************/ |
08 |
09 |
10 | int dir,range,dirfire,tmp; |
11 | main() |
12 | { |
13 | while (loc_x()<800) {drive(0,100); |
14 | if (range==0) { range=scan(dirfire+=20,10);} |
15 | else spara(); } |
16 | drive(dir=0,100); |
17 | tmp=700; |
18 | while (1) { if (damage()>75) tmp=550; muovi(); spara();} |
19 | } |
20 |
21 | spara() |
22 | { |
23 | if ((range=scan(dirfire,10))>0) |
24 | { |
25 | precis(); |
26 | } |
27 | else |
28 | { |
29 | if ((range=scan(dirfire+=20,10))==0) |
30 | { |
31 | if ((range=scan(dirfire-=40,10))==0) dirfire+=60; |
32 | else precis(); |
33 | } |
34 | else precis(); |
35 | } |
36 | if (range>0) cannon(dirfire, range); |
37 | } |
38 |
39 | precis() |
40 | { |
41 | if ((range=scan(dirfire+=5,5))==0) range=scan(dirfire-=10,5); |
42 | if ((range=scan(dirfire+=3,3))==0) range=scan(dirfire-=6,3); |
43 | } |
44 |
45 | muovi() |
46 | { |
47 | if (loc_x()<=tmp && dir==180) dir = 0; |
48 | else if (loc_x()>=850 && dir==0) { if ((scan(270,5)==0) && range>50) dir = 270; else {dir=180; dirfire=dir; } } |
49 | else if (loc_y()<=tmp && dir==270) dir = 90; |
50 | else if (loc_y()>=850 && dir==90) { if ((scan(180,5)==0) && range>50) dir = 180; else { dir =270; dirfire=dir; }} |
51 | drive(dir,100); |
52 | } |