micro/pippo00.r
01 | /* |
02 | descrizione: |
03 |
04 | Questo robot, sviluppato in circa 10 minuti fa: |
05 |
06 | si sposta sul lato destro e da li oscilla. |
07 | Per sparare esegue una scansione del terreno e in base al range |
08 | attuale e precedente spara |
09 |
10 | Fine. |
11 |
12 | */ |
13 | int rng,orng,deg; |
14 | main() |
15 | { |
16 | drive(0,100); |
17 | while (loc_x()<960) sp(); |
18 | drive(90,0); |
19 | while (speed()>49) sp(); |
20 |
21 | while (1) |
22 | { |
23 | drive(90,100); |
24 | while (loc_y()<920) sp(); |
25 | drive(270,0); |
26 |
27 | while (speed() > 49) sp(); |
28 |
29 | drive(270,100); |
30 | while (loc_y()>80) sp(); |
31 | drive(90,0); |
32 |
33 | while (speed() > 49) sp(); |
34 | } |
35 |
36 | } |
37 |
38 | sp() |
39 | { |
40 | if (rng=scan(deg,10)) |
41 | { |
42 | deg -= 5*(scan(deg-5,1)>0); |
43 | deg += 5*(scan(deg+5,1)>0); |
44 | deg -= 3*(scan(deg-3,1)>0); |
45 | deg += 3*(scan(deg+3,1)>0); |
46 | |
47 | cannon(deg,rng+rng-orng); |
48 | orng=rng; |
49 | if (rng>700) deg+=10; |
50 | } |
51 | else |
52 | { |
53 | deg+=10; |
54 | if (deg>=300) deg=80; |
55 | } |
56 | } |