1993/horse.r
01 | /* Horse.r by Summa Giovanni |
02 |
03 | Horse si muove su 3 lati dell' arena con un movimento a U o ferro |
04 | di cavallo sparando con una portata leggermente allungata o accorciata |
05 | a seconda del verso di marcia |
06 | */ |
07 | int Direz,Ang; |
08 | main() |
09 | { |
10 | while (1) |
11 | { |
12 | drive (0, 100); |
13 | Ang=200; |
14 | Direz=Ang; |
15 | while (loc_x() < 940) |
16 | seek2(); |
17 | drive (90, 0); |
18 | frena2(); |
19 | drive (90, 100); |
20 | Ang=290; |
21 | Direz=Ang; |
22 | while (loc_y() < 940) |
23 | seek2(); |
24 | drive (180, 0); |
25 | frena2(); |
26 | drive (180, 100); |
27 | Ang=360; |
28 | Direz=Ang; |
29 | while (loc_x() > 80) |
30 | seek2(); |
31 | drive (0, 0); |
32 | frena(); |
33 | drive (0, 100); |
34 | Ang=160; |
35 | Direz=Ang; |
36 | while (loc_x() < 940) |
37 | seek(); |
38 | drive (270, 0); |
39 | frena(); |
40 | drive (270, 100); |
41 | Ang=70; |
42 | Direz=Ang; |
43 | while (loc_y() > 80) |
44 | seek(); |
45 | drive (180, 0); |
46 | frena(); |
47 | drive (180, 100); |
48 | Ang=0; |
49 | Direz=Ang; |
50 | while (loc_x() > 80) |
51 | seek(); |
52 | drive (0, 0); |
53 | frena(); |
54 | } |
55 | } |
56 | /* Funzioni di scansione e attacco */ |
57 | seek() |
58 | { |
59 | int Portata; |
60 | if (Portata=scan(Direz,10)) |
61 | cannon(Direz,Portata * 7 / 8); |
62 | Direz+=20; |
63 | if (Direz > (Ang+199)) |
64 | Direz=Ang; |
65 | } |
66 | seek2() |
67 | { |
68 | int Portata; |
69 | if (Portata=scan(Direz,10)) |
70 | cannon(Direz,Portata * 8 / 7); |
71 | Direz-=20; |
72 | if (Direz < (Ang - 200)) |
73 | Direz=Ang; |
74 | } |
75 | frena() |
76 | { |
77 | while (speed() > 49) |
78 | seek(); |
79 | } |
80 | frena2() |
81 | { |
82 | while (speed() > 49) |
83 | seek2(); |
84 | } |
85 |
|