WITH Spider; PROCEDURE Drunken_Spider IS ---------------------------------------------------------------- --| Spider tries to tour its room but has drunk too much, so --| takes a random number of steps and may hit the wall. If the --| spider hits the wall, it turns around and keeps going. --| Author: M. B. Feldman, The George Washington University --| Last Modified: July 1998 ---------------------------------------------------------------- BEGIN -- Drunken_Spider Spider.Start; LOOP -- keep going forever Spider.Face(WhichWay => Spider.RandomDirection); Spider.ChangeColor(NewColor => Spider.RandomColor); -- Spider will count steps correctly -- but might change direction FOR Count IN 1..Spider.RandomStep LOOP IF Spider.AtWall THEN Spider.TurnRight; Spider.TurnRight; END IF; Spider.Step; END LOOP; Spider.TurnRight; END LOOP; END Drunken_Spider;