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 
10int dir,range,dirfire,tmp;
11main()
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 
21spara()
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 
39precis()
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 
45muovi()
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}