ZZT-OOP Programming Language

Tutorial

The best way to learn something is to jump right in, so let's not waste any time.

To put an object on the board, press F2 O. After picking a character to represent the object, you can enter a program to control it.

Here is an example program

 Commands    Comments
 ----------  -----------------
 @BadGuy     ' We are giving this object the name "BadGuy".
 /s/s/s      ' Start out by moving south three times.
 #shoot n    ' Next, shoot north.
 #end        ' Now stop and wait for us to receive a message.
 :shot       ' When we receive a "SHOT" message, start doing the following commands.
 #shoot seek ' Shoot towards the player.
 #end        ' Stop and wait for another message.
 :touch      ' Do the following when we receive a "TOUCH" message
 Ouch! Stop touching me.
             ' Put the preceeding text on the screen.
 #send shot  ' Next, send ourselves the message "SHOT".

Note that the "SHOT" message will be sent to BadGuy whenever the player shoots BadGuy. Likewise, when the player touches BadGuy, BadGuy will receive the "TOUCH" message.

ZZT-OOP is a relatively simple language and its commands are straightforward. The primary difference between ZZT-OOP and conventional languages such as BASIC is the use of messages.

The following two objects illustrate a more intense use of messages:

Here is the first object:

@Lefty          ' This object's name
/e/e/e/e        ' Move east 4 times
/w/w/w/w        ' Move west 4 times
#send Righty Do ' Send the "Do" message to the object named "Righty"
#end            ' and halt.

Here is the other object:

@Righty             ' This is our name
#end                ' Don't do anything until we receive a message
:do                 ' Here's the "Do" message
/w/w/w/w            ' Move west 4 times
/e/e/e/e            ' Move east 4 times
#send lefty:restart ' Tell your counterpart to restart
#end                ' Done for now
These two objects form a feedback loop. When the game starts, Lefty will move, then send a message to Righty. This causes Righty to move then tell Lefty to restart. So lefty moves, etc, etc, etc.

So concludes this mini-tutorial. Once you think you have a grasp of the idea of ZZT-OOP programs and messages, you are ready to proceed to... The ZZT-OOP reference manual.