home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 15 / CDACTUAL15.iso / cdactual / program / pascal / P_ROBOTS.ZIP / P-ROBT21.ZOO / ninja2.pr < prev    next >
Encoding:
Text File  |  1989-10-23  |  1.8 KB  |  69 lines

  1. (**************************************************************************)
  2. (*                             W A R N I N G                              *)
  3. (*                                                                        *)
  4. (*  This Robot has NOT been designed to take advantage of the advanced    *)
  5. (*  features of P-ROBOTS, such as, Shields, Fuel, Teams or Obstructions.  *)
  6. (**************************************************************************)
  7.  
  8.   PROCEDURE Ninja2;
  9.  
  10.     { Based on a C-Robot by  Hortense Endoh }
  11.  
  12.   VAR
  13.     dir, deg, Range, spd, cnt : Integer;
  14.  
  15.  
  16.     PROCEDURE shoot;
  17.     BEGIN
  18.       drive(dir, spd);
  19.       Range := scan(deg, 10);
  20.       IF (Range > 40)
  21.       THEN cannon(deg, Range)
  22.       ELSE BEGIN
  23.         deg := deg+20;
  24.         Range := scan(deg, 10);
  25.         IF (Range = 0) THEN
  26.           BEGIN
  27.             deg := deg-40;
  28.             Range := scan(deg, 10);
  29.             IF (Range = 0) THEN
  30.               BEGIN
  31.                 deg := deg+60;
  32.                 Range := scan(deg, 10);
  33.                 WHILE (Range = 0) DO
  34.                   BEGIN
  35.                     deg := deg+20;
  36.                     Range := scan(deg, 10);
  37.                   END;
  38.               END;
  39.           END;
  40.         IF (Range > 40) THEN cannon(deg, Range);
  41.       END;
  42.     END; {Shoot}
  43.  
  44.  
  45.   BEGIN {Main Ninja2}
  46.     spd := 100;
  47.     deg := 90;
  48.     dir := 270;
  49.     WHILE (loc_y > 500) DO shoot;
  50.     dir := 90;
  51.     WHILE (loc_y < 500) DO shoot;
  52.  
  53.     REPEAT {until dead or winner}
  54.       cnt := 10;
  55.       WHILE (cnt > 0) DO
  56.         BEGIN
  57.           dir := deg;
  58.           shoot;
  59.           cnt := cnt-1;
  60.         END;
  61.       deg := deg+3;
  62.       dir := 270;
  63.       WHILE (loc_y > 290) DO shoot;
  64.       dir := 0;
  65.       WHILE (loc_x < 710) DO shoot;
  66.     UNTIL Dead OR Winner;
  67.   END; {Main Ninja}
  68.  
  69.