Figure 1. Zork flowchart
(S)
|
|<----------------------+
v |
+---------------+ |
| | |
| INPUT | |
| | |
+---------------+ |
| |
| |
v |
/ \ |
+---------------+ / \ |
| | FAIL /PARSE\ |
+---------------| DIAGNOSIS |<-----------\ / |
| | | \ / |
| +---------------+ \ / |
| | |
| | SUCCEED |
| v |
| / \ |
| / *\ |
| /ACTOR\ HANDLED |
| \ /------------+ |
| \ / | |
| \ / | |
| | | |
| | NOT HANDLED | |
| v | |
| +---------------+ | |
| | ** | | |
| | VEHICLE [1] | | |
| | | | |
| +---------------+ | |
| | | |
| | | |
| OBJECTS v | |
| +---------------+ +---------------+ | |
| HANDLED | *** | | : | | |
| +-------| INDIRECT |<......|.......: | | |
| | | | | : | | |
| | +---------------+ | : | | |
| | | | : | | |
| | | NOT HANDLED | VERB | | |
| | v | : | | |
| | +---------------+ | : | | |
| |HANDLED| *** |NOT | : | FAILED| |
| |<------| DIRECT |------>|.......: |------>| |
| | | |HANDLED| : | | |
| | +---------------+ +---------------+ | |
| | | | |
| | | SUCCEEDED | |
| +-------------------------------------->| | |
| v | |
| +---------------+ | |
| | | | |
| | ROOM | | |
| | | | |
| +---------------+ | |
| | | |
+---------------------------------------------->|<--------------+ |
v |
+---------------+ |
| | |
| DEMONS | |
| | |
+---------------+ |
| |
| |
v |
+---------------+ |
| | |
* Called if actor is not player | VEHICLE [2] | |
** Called if player is in vehicle | | |
*** Called if object was given +---------------+ |
| |
+-----------------------+