PACKAGE Spider IS ---------------------------------------------------------------- --| This package provides procedures to emulate "Spider" --| commands. The spider can move around --| the screen drawing simple patterns. --| Author: John Dalbey, Cal Poly San Luis Obispo, 1992 --| Adapted by M. B. Feldman, The George Washington University --| Last Modified: December 1998 ---------------------------------------------------------------- -- These are the spider's simple parameterless methods PROCEDURE Start; -- Pre: None -- Post: Spider's room appears on the screen -- with spider in the center. PROCEDURE Quit; -- Pre: None -- Post: End the drawing PROCEDURE Step; -- Pre: None -- Post: Spider takes one step forward in the direction it is facing. -- Raises: Hit_the_Wall if spider tries to step into a wall. PROCEDURE TurnRight; -- Pre: None -- Post: Spider turns 90 degrees to the right. -- now some types, and methods that use the types TYPE Directions IS (North, East, South, West); TYPE Colors IS (Red, Green, Blue, Black, None); SUBTYPE Steps IS Integer RANGE 1..20; PROCEDURE Face (WhichWay: IN Directions); -- Pre: WhichWay has been assigned a value -- Post: Spider turns to face the given direction. FUNCTION IsFacing RETURN Directions; -- Pre: None -- Post: Returns the direction the spider is facing. FUNCTION RandomDirection RETURN Directions; -- Pre: None -- Post: Returns a random direction PROCEDURE ChangeColor (NewColor: Colors); -- Pre: NewColor has been assigned a value -- Post: Spider leaves its tracks in the new color FUNCTION IsPainting RETURN Colors; -- Pre: None -- Post: Returns the color in which the spider is painting FUNCTION RandomColor RETURN Colors; -- Pre: None -- Post: Returns a random color FUNCTION AtWall RETURN Boolean; -- Pre: None -- Post: Returns True if the spider is standing next to a wall FUNCTION RandomStep RETURN Steps; -- Pre: None -- Post: Returns a random number in the range 1..20 Hit_The_Wall: EXCEPTION; TYPE Switch IS (On, Off); PROCEDURE Debug (Setting: Switch); -- Pre: None -- Post: Turns on or off single stepping through the program. FUNCTION Debugging RETURN Switch; -- Pre: None -- Post: Returns on or Off depending on Debug setting END Spider;