{ |one, step, back| }

The Shape Example in AdvSys

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.

Code for AdvSys

Output

[/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