1992/genesis.r

01/*
02   GENESIS.R
03   ---------
04   Claudio DAFFRA
05*/
06 
07int dir, range;
08 
09main()
10{
11    dir = 270;
12    drive(270, 100);
13    while (loc_y() > 50)
14        if (range = scan(dir, 3))
15            cannon ( dir, 7 * range / 8 );
16        else
17         {
18            dir -= 23;
19            range = 800;
20            while ( range > 750 && loc_y() > 50 )
21                while (!(range = scan(dir, 10)) && loc_y() > 50 )
22                    dir += 20;
23            if (range < 60)
24                range = 60;
25            cannon (dir, 7 * range / 8);
26        };
27    drive(0, 50);
28    while (speed() > 49)
29        if (range = scan(dir, 10))
30            cannon(dir, 7 * range / 8);
31    while (1) {
32        drive(0, 100);
33        while (loc_x() < 920) {
34            if (range = scan(dir, 3))
35                cannon ( dir, 7 * range / 8 );
36            else
37             {
38                dir -= 23;
39                range = 800;
40                while ( range > 750 && loc_x() < 920 ) {
41                    while (!(range = scan(dir, 10)) && loc_x() < 920 ) {
42                        dir += 20;
43                        if (dir > 180)
44                            dir = 0;
45                    }
46                }
47                if (range < 60)
48                    range = 60;
49                cannon (dir, 7 * range / 8);
50            };
51        }
52        drive(180, 50);
53        while (speed() > 49)
54            if (range = scan(dir, 10))
55                cannon(dir, 7 * range / 8);
56 
57        drive(180, 100);
58        while (loc_x() > 80) {
59            if (range = scan(dir, 3))
60                cannon ( dir, 7 * range / 8 );
61            else
62             {
63                dir -= 23;
64                range = 800;
65                while ( range > 750 && loc_x() > 80 ) {
66                    while (!(range = scan(dir, 10)) && loc_x() > 80 ) {
67                        dir += 20;
68                        if (dir > 180)
69                            dir = 0;
70                    }
71                }
72                if (range < 60)
73                    range = 60;
74                cannon (dir, 7 * range / 8);
75            };
76        }
77        drive(0, 50);
78        while (speed() > 49)
79            if (range = scan(dir, 10))
80                cannon(dir, 7 * range / 8);
81    }
82}