Contributed by Scott Anderson
This one is somewhat silly.
The ADVenture SYStem, by David Betz, is a lisp-like system used for creating stand-alone adventure games. I found it a bit frustrating to work with because it does not correctly treat integers as integers, and there is no way to coerce a string into an integer form.
To use the example, compile the adventure system and perform the following command:
advcom shapes
This will create a file named "shapes.dat". Run the example with the interpreter like this:
advint shapes
ADVSYS supports single inheritance, inheritance of implementation and properties, and a host of nifty game-specific features like command parsing and the like.
[/usr/local/src/shapes/advsys]# advint shapes ADVINT v1.2 - Copyright (c) 1986, by David Betz Welcome to the shape adventure! This is an oddly bland room, totally devoid of any markings. There is a green lever, sticking out of the wall. There is a red lever, sticking out of the wall. There is a blue lever, sticking out of the wall. :pull blue lever You pull the blue lever, and a blue rectangle pops out of a chute in the wall! :pull red lever You pull the red lever, and a red circle pops out of a chute in the wall! :look This is an oddly bland room, totally devoid of any markings. A red circle is lying on the floor. A blue rectangle is lying on the floor. There is a green lever, sticking out of the wall. There is a red lever, sticking out of the wall. It has been pulled down. There is a blue lever, sticking out of the wall. It has been pulled down. :draw rectangle You trace the rectangle on the floor at (10, 20). The width is 5, and the height is 6. :move rectangle You grunt and strain, and move the blue rectangle to another spot on the floor. :draw rectangle You trace the rectangle on the floor at (100, 100). The width is 5, and the height is 6. :draw circle You trace the circle on the floor at (15, 25). The radius is 8. :move circle You grunt and strain, and move the red circle to another spot on the floor. :draw circle You trace the circle on the floor at (100, 100). The radius is 8. :pull green lever You pull the green lever, and a green rectangle pops out of a chute in the wall! :look This is an oddly bland room, totally devoid of any markings. A green rectangle is lying on the floor. A red circle is lying on the floor. A blue rectangle is lying on the floor. There is a green lever, sticking out of the wall. It has been pulled down. There is a red lever, sticking out of the wall. It has been pulled down. There is a blue lever, sticking out of the wall. It has been pulled down. :draw rectangle I don't know which rectangle you mean! :draw green rectangle You trace the rectangle on the floor at (0, 0). The width is 15, and the height is 15. :stretch green rectangle You hook your foot in the green rectangle, and stretch it. :draw green rectangle You trace the rectangle on the floor at (0, 0). The width is 30, and the height is 15. :quit Are you sure you want to quit? y