2003/piiico.r
01 | /*------------------------------------------------------------------------------\ |
02 | | ######## #### #### #### ###### ####### | |
03 | | ## ## ## ## ## ## ## ## ## | |
04 | | ## ## ## ## ## ## ## ## | |
05 | | ######## ## ## ## ## ## ## | |
06 | | ## ## ## ## ## ## ## | |
07 | | ## ## ## ## ## ## ## ## | |
08 | | ## #### #### #### ###### ####### | |
09 | |-------------------------------------------------------------------------------| |
10 | |Autore: Luca Giacometti | |
11 | | Nome robot: piiico [perche' piiico significa piccolissimo piu' di pico] | |
12 | | Tattica: piiico si sposta nell angolo in basso a destra [se ci sono piu]| |
13 | | di 3 robot nello scontro anche se la procedura di scan e molto | |
14 | | da modificare in quanto non molto precisa] e inizia a far | |
15 | | fuoco nei 90 gradi tra il lato destro e quello inferiore del | |
16 | | campo di battaglia [a differenza degli altri robot non si | |
17 | | preoccupa dell occupazione dell angolo, se e occupato, lo | |
18 | | disoccupa a cannonate]. | |
19 | | Nel caso in cui [con una scansione non molto precisa] individui| |
20 | | 1 solo robot rimanente gli salta addosso [si muove sempre | |
21 | | verso il bersaglio] scansionando allo stesso angolo del ciclo | |
22 | | precedente se ha visto il nemico, nei 20 gradi successivi se | |
23 | | non lo ha visto.Questo mi assicura un ottima strategia di | |
24 | | inseguimento.Ben poche volte piiico perde il nemico durante | |
25 | | l attacco finale e anche nel caso in cui succedesse, | |
26 | | lo recupera entro 18 cicli di scansione [360/20]. | |
27 | | piiico non tiene conto del cannon recharge, se posso sparare | |
28 | | sparo, dopo potrei aver problemi ben maggiori del recharge | |
29 | | o del range che me lo impediscono [vedi morte 8)] | |
30 | | piiico e il robot che intendo usare in tutti gli scontri non f2f| |
31 | | Data di nascita: 11/09/2003 versione 0.1 attuale 0.4 [versione corrente]| |
32 | | Citta': Cuneo [Italy] | |
33 | \------------------------------------------------------------------------------*/ |
34 |
35 | int count,angle,range; |
36 |
37 | main() |
38 | { |
39 | while (angle<359) |
40 | { |
41 | if (range=scan(angle+=20,10)) count+=1; |
42 | } |
43 | if (count!=1) while (loc_x()<997) drive(180+180*(999>loc_x())+ atan (100000*(loc_y()-0)/(loc_x()-999)),100); |
44 | while (count!=1) |
45 | { |
46 | count=0; |
47 | angle=80; |
48 | while (angle<181) |
49 | { |
50 | if (range=scan(angle+=20,10)) {count+=1;cannon(angle,range+20);} |
51 | } |
52 | } |
53 | while (1) |
54 | { |
55 | if (range=scan(angle+=20,10)) |
56 | { |
57 | cannon(angle,range+10); |
58 | drive(angle,range); |
59 | angle-=20; |
60 | } |
61 | } |
62 | } |