home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 15 / CDACTUAL15.iso / cdactual / program / pascal / P_ROBOTS.ZIP / P-ROBT21.ZOO / nfrank3.pr < prev    next >
Encoding:
Text File  |  1989-10-31  |  4.5 KB  |  183 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 NFrank3;
  9.  
  10. {
  11.       This robot travels as follows
  12.  
  13.  
  14.                           |\       /|
  15.                           |  \   /  |
  16.                           |    /    |
  17.                           |  /   \  |
  18.                           |/       \|
  19.  
  20.                           Frank Yetnick
  21.                              12/9/89
  22. }
  23.  
  24.   VAR
  25.     Deg, Dir, range : Integer;
  26.  
  27.   BEGIN
  28.     Dir := Angle_To(100, 900);
  29.     Deg := 135;
  30.     WHILE (loc_x > 100) AND (loc_y < 900) DO {Travel to upper left corner}
  31.       BEGIN
  32.         range := SCAN(Deg, 10);
  33.         IF range > 39 THEN
  34.           BEGIN
  35.             CANNON(Deg, range);
  36.             CANNON(Deg, range);
  37.           END
  38.         ELSE
  39.           Deg := Deg+20;
  40.         DRIVE(Dir, 100);
  41.       END;
  42.  
  43.     DRIVE(Dir, 40);               {Begin to slow down}
  44.  
  45.     WHILE (speed > 40) DO         {Slow down}
  46.       BEGIN
  47.         range := SCAN(Deg, 10);
  48.         IF range > 39 THEN
  49.           BEGIN
  50.             CANNON(Deg, range);
  51.             CANNON(Deg, range);
  52.           END
  53.         ELSE
  54.           Deg := Deg+20;
  55.       END;
  56.  
  57.     REPEAT
  58.  
  59.       {Go from upper left to lower right corner}
  60.       Deg := 315;
  61.       WHILE (loc_x < 850) AND (loc_y > 150) DO
  62.         BEGIN
  63.           DRIVE(315, 100);
  64.           range := SCAN(Deg, 10);
  65.           IF range > 39 THEN
  66.             BEGIN
  67.               CANNON(Deg, range);
  68.               CANNON(Deg, range);
  69.             END
  70.           ELSE
  71.             Deg := Deg+20;
  72.         END;
  73.  
  74.       DRIVE(315, 40);             {Begin to slow down}
  75.  
  76.       WHILE (speed > 40) DO       {Slow down}
  77.         BEGIN
  78.           range := SCAN(Deg, 10);
  79.           IF range > 39 THEN
  80.             BEGIN
  81.               CANNON(Deg, range);
  82.               CANNON(Deg, range);
  83.             END
  84.           ELSE
  85.             Deg := Deg+20;
  86.         END;
  87.  
  88.       {Go up right side}
  89.       Deg := 90;
  90.       WHILE (loc_y < 850) DO
  91.         BEGIN
  92.           DRIVE(90, 100);
  93.           range := SCAN(Deg, 10);
  94.           IF range > 39 THEN
  95.             BEGIN
  96.               CANNON(Deg, range);
  97.               CANNON(Deg, range);
  98.             END
  99.           ELSE
  100.             BEGIN
  101.               Deg := Deg+20;
  102.               IF Deg > 270 THEN
  103.                 Deg := 90;
  104.             END;
  105.         END;
  106.  
  107.       DRIVE(90, 40);              {Begin to slow down}
  108.  
  109.       WHILE (speed > 40) DO       {Slow down}
  110.         BEGIN
  111.           range := SCAN(Deg, 10);
  112.           IF range > 39 THEN
  113.             BEGIN
  114.               CANNON(Deg, range);
  115.               CANNON(Deg, range);
  116.             END
  117.           ELSE
  118.             Deg := Deg+20;
  119.         END;
  120.  
  121.       {Go from upper right to lower left corner}
  122.       Deg := 225;
  123.       WHILE (loc_y > 150) AND (loc_x > 150) DO
  124.         BEGIN
  125.           DRIVE(225, 100);
  126.           range := SCAN(Deg, 10);
  127.           IF range > 39 THEN
  128.             BEGIN
  129.               CANNON(Deg, range);
  130.               CANNON(Deg, range);
  131.             END
  132.           ELSE
  133.             Deg := Deg+20;
  134.         END;
  135.  
  136.       DRIVE(225, 40);             {Begin to slow down}
  137.  
  138.       WHILE (speed > 40) DO       {Slow down}
  139.         BEGIN
  140.           range := SCAN(Deg, 10);
  141.           IF range > 39 THEN
  142.             BEGIN
  143.               CANNON(Deg, range);
  144.               CANNON(Deg, range);
  145.             END
  146.           ELSE
  147.             Deg := Deg+20;
  148.         END;
  149.  
  150.       {Go up left side}
  151.       Deg := 270;
  152.       WHILE (loc_y < 850) DO
  153.         BEGIN
  154.           DRIVE(90, 100);
  155.           range := SCAN(Deg, 10);
  156.           IF range > 39 THEN
  157.             BEGIN
  158.               CANNON(Deg, range);
  159.               CANNON(Deg, range);
  160.             END
  161.           ELSE
  162.             Deg := Deg+20;
  163.         END;
  164.  
  165.       DRIVE(90, 40);              {Begin to slow down}
  166.  
  167.       WHILE (speed > 40) DO       {Slow down}
  168.         BEGIN
  169.           range := SCAN(Deg, 10);
  170.           IF range > 39 THEN
  171.             BEGIN
  172.               CANNON(Deg, range);
  173.               CANNON(Deg, range);
  174.             END
  175.           ELSE
  176.             Deg := Deg+20;
  177.         END;
  178.  
  179.  
  180.     UNTIL DEAD;
  181.  
  182.   END;                            { End NFrank3 Main }
  183.