home *** CD-ROM | disk | FTP | other *** search
- PROCEDURE FOO;
-
- { Based on C-Robot FOO : programmed by OBI-ONE }
-
- VAR
- drv_dir : Integer; { drive direction }
- scn_dir : Integer; { scan direction }
- Range : Integer; { range to oponent }
- found : Integer; { foe found ? }
- x, y : Integer; { current location }
-
- BEGIN {FOO main}
- drv_dir := Random(360); { initialize }
- scn_dir := 0;
- found := 0;
- drive(drv_dir, 100);
-
- WHILE True DO BEGIN { main loop }
-
- { when close to wall, turn around at random. }
-
- x := loc_x;
- IF (x < 200) THEN
- drv_dir := Random(90)
- ELSE IF (x > 800) THEN
- drv_dir := Random(90)+180;
-
- y := loc_y;
- IF (y < 200) THEN
- drv_dir := Random(90)+90
- ELSE IF (y > 800) THEN
- drv_dir := Random(90)+270;
-
- drive(drv_dir, 100);
-
- { scan every 20 degrees resolution. }
- { if foe found, cannon it. }
-
- Range := scan(scn_dir, 10);
- IF Range > 0 THEN
- BEGIN
- found := 1;
- cannon(scn_dir, Range);
- END
- ELSE IF found > 0 THEN
- BEGIN
- found := 0;
- scn_dir := scn_dir-30;
- END
- ELSE scn_dir := scn_dir+10;
-
- END; { end of main loop }
- END; {FOO}