The Spider Package
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 method
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;