DUNGEON by Alan Davis from ZX Computing Apr/May.1985 A full adventure specially written for ZXC by Alan Davis, author of Temptation Software's "The Journey". Anyone familiar with that marvellous program "The Hobbit" will be aware of the features that set it apart from traditional adventure games. Even setting aside the graphics, and the fact that it is based upon a masterpiece of imaginative fiction, one finds a curious vitality in the game due to the independence of the characters in it, and one's ability to communicate with them. "Dungeon" is an attempt to introduce (in a limited way) independent action into a short text adventure. The game is written entirely in BASIC, but in practice has a fairly respectable response time - largely because the vocabulary is fairly small, but also because the most commonly used subroutines are placed early in the program. The most important of these are described below. Movement routine (Lines 200-290). Permitted moves are stored in the array r(13,6) - 13 locations, and 6 possible directions of movement. Lines 205 to 230 check the legitimacy of a move and execute it. The following lines print the description of the new location, any visible objects, and the new set of permitted movements. Decode input routine (lines 500-540). This decodes the input string z$ into a maximum of four separate words and stores these as the strings a$, b$, c$, and d$. Four word decoding is necessary for instructions such as "tell jailer drop spoon", or "give spoon to jailer". Main input routine (lines 100-190). The input is tested against the program's vocabulary. Note that the vocabulary is listed in data statements: verbs at line 25, portable objects at line 30, characters at line 35, and non- portable objects at line 40. a$ is tested against the verbs; and b$ against the nouns, and the appropriate subroutine called for that verb (line 160). If a$ = "tell", and b$ corresponds to a character present at that location, then the strings c$ and d$ are called and the test procedure repeated on the character's behalf. Independent action routine (lines 700-900). Lines 700 to 722 select a character at random and check to determine whether he is in the present location. (This is in fact done twice in order to make action more likely.) The following lines then select the appropriate action, governed mostly by the RND function, but also in some cases by the charm of the player, or the strength of the character. Charm and strength. The player's strength is registered in the variable t, and the strength of the 3 characters in the array t(3). His charm varies from one character to another, and is held in the array k(3). Note the effect of this on the likelihood of a character co-operating with the player (line 330, called at line 1117). The game You may tell the characters to do anything you can do, except move between locations. The hobbit will in any case tend to follow you around, once released. The jailer moves of his own accord between the dungeons and the guardroom. There are a number of ways of increasing a character's affection for you - you could, for example, give him something he wants. The response of the character (or lack of it!) to your actions will usually indicate whether you're on the right track. Combat is inadvisable unless your strength is high and/or you are properly equipped. Most of the objects that turn up are useful. Assuming that you don't cheat by reading the listing too carefully, you may require clues. These may be had by typing "help" - most of the hints are helpful ... Finally - there is no single solution to the game, since the behaviour of the other characters may either help or hinder you at any time. This can become rather frustrating ... -- Another Fine Product transcribed by: Jim Grimwood (jimg@globalnet.co.uk), Weardale, England --