crobs/scanner.r
01 | /* scanner */ |
02 | |
03 | int angle, range, d; |
04 |
05 | main() |
06 | { |
07 | int la; |
08 |
09 | angle = 0; |
10 | d = damage (); |
11 | while (1) { |
12 | sweep (); |
13 | } |
14 | } |
15 | |
16 | |
17 | sweep () |
18 | { |
19 | |
20 | while (1) { |
21 | if (d != damage()) { |
22 | d = damage(); |
23 | run(); |
24 | } |
25 | if ((range = scan(angle,5)) > 0) { |
26 | if (range < 700) cannon (angle, range); |
27 | if (range > 600 ) drive (angle, 100); |
28 | else drive (angle, 25); |
29 | angle -= 13; |
30 | } |
31 | angle += 5; |
32 | if (angle > 360) angle -= 360; |
33 | } |
34 | } |
35 |
36 | |
37 |
38 | /* run moves off at current scan angle + 90 deg */ |
39 |
40 | run() |
41 | { |
42 | int i; |
43 | |
44 | drive (angle+90, 100); |
45 | angle -= 90; |
46 | if (angle < 0) angle += 360; |
47 | i = 50; |
48 | while ((--i) && (speed ())) ; |
49 | drive (angle, 100); |
50 | while (speed ()) ; |
51 | drive (angle, 30); |
52 | } |
53 |
54 | ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� |