crobs/scanner.r

01/* scanner */
02                                         
03  int angle, range, d;
04 
05main()
06{
07  int la;
08 
09  angle = 0;
10  d = damage ();
11  while(1) {
12     sweep ();
13  }
14}
15                                         
16                                         
17sweep  ()
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 
40run()
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����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������