![]() | Chapter 16: Understanding | ![]() ![]() |
16.1. Understand |
During play, the computer and the player alternate in writing messages to each other: in the player's case, these are short instructions, usually saying what to do next. A wide range of such "commands" are automatically understood, but these only apply to the standard built-in actions. (This wide range is conveniently tabulated at the foot of the Actions index.) If we want the player to be able to command new actions, then we need to specify what is to be understood as what. For this, we supply special sentences starting with the word "Understand".
Suppose we return to the earlier example of a newly created action:
Photographing is an action applying to one visible thing and requiring light.
We then supply lines of grammar (as they are called) for Inform to recognise, like so:
Understand "photograph [someone]" as photographing.
Understand "photograph [an open door]" as photographing.
As usual, the square brackets indicate something which stands for text, rather than text to be taken verbatim. "[someone]" needs to be the name of anything of the kind "person", for instance (though as usual that person will need to be in sight of the player for the name to be accepted). The first word - in these examples "photograph" - must be something definite, not a substitution like this.
For obvious reasons, this pattern of words needs to match the expectations of the action. Photographing applies to "one visible thing" - the "visible" just means it does not need to be touched, only seen - so neither of these would be allowable:
Understand "photograph" as photographing.
Understand "photograph [someone] standing next to [something]" as photographing.
The first is bad because it supplies no things at all, the second because it supplies two: what we want, of course, is just the one.
| ![]() Basics of adding a new command reviewed, for the case of the simple magic word XYZZY. |
|
| ![]() Renaming the directions of the compass so that "white" corresponds to north, "red" to east, "yellow" to south, and "black" to west. |
|
| ![]() ![]() Creating a new command that does require an object to be named; and some comments about the choice of vocabulary, in general. |
|
Previous | Contents | Next |