16.10. Commands consisting only of nouns

| Chapter 16: Understanding |

| 16.10. Commands consisting only of nouns

In every example so far, and in almost all practical cases, the first word in a command which results in an action will be something fixed: a verb, in fact. When we write

> Understand "photograph [something]" as photographing.

we are saying that the first word of such a command will always be "photograph". Occasionally, though, we would like to understand a noun as a command, perhaps in a situation where the command is obvious. If we say:

> Understand "[something]" as examining.

then the command "examine" will be implicit when the player types a bare noun:

> A red box and a blue ball are here.
> > BALL
> The blue ball is plaited from many small leather patches.

so that the command "ball" has resulted in the action "examining the blue ball".

This is a feature which should be used sparingly, since it could easily lead to confusion if not carefully explained to the player. By default, it is not used at all.

It also has what may be a serious limitation: verbless commands like this work only when typed by the player as actions to follow - they do not work as instructions for other people. So for instance SVEN, BALL would not ask Sven to try examining the ball - instead it would generate the action "answering ball to Sven". (This is because the Inform parser decides whether PERSON, SOME TEXT is a request or just conversation by looking at the first word after the comma to see if it's a command.)

295
| Example Misadventure A going by name command which does respect movement rules, and accepts names of rooms as commands. |
RB

The original Adventure allowed the player to type the names of rooms in order to move to them, and it is now not too difficult for us to do the same. Adventure restricted this option to adjacent rooms, but we might want to be a bit more flexible, so we will accept any room: "Misadventure" Plover Room is a room. "You're in a small chamber lit by an eerie green light. An extremely narrow tunnel exits to the west. A dark corridor leads northeast." The Dark Corridor is northeast of Plover Room. Plover Room is south of the Dark Corridor. The printed name of the Dark Corridor is "Dark Room". The description of the Dark Corridor is "You're in the dark-room. A corridor leading south is the only exit." The Alcove is west of Plover Room. "You are in an alcove. A small northwest path seems to widen after a short distance. An extremely tight tunnel leads east. It looks like a very tight squeeze. An eerie light can be seen at the other end." Northwest of the Alcove is the Misty Cavern. The description of Misty Cavern is "You are following a wide path around the outer edge of a large cavern. Far below, through a heavy white mist, strange splashing noises can be heard. The mist rises up through a fissure in the ceiling. The path exits to the south and west." West of Misty Cavern is the Alcove. Understand "[any room]" as going by name. Understand "go to [any room]" as going by name. Going by name is an action applying to one thing. We should reject movement to the player's current location, or to anywhere he hasn't been and can't see: Check going by name: if the noun is the location, say "You're already in [the location]." instead; if the noun is not adjacent and the noun is unvisited, say "That noun did not make sense in this context." instead. The assumption here is that the player does know the names of the rooms adjacent to his current location, even if he hasn't been there yet. Now for the travel itself. The simplest way to ensure that the usual movement rules will still apply is to convert GO BY NAME into a GO action, and here the best route comes to our aid: Carry out going by name: let aim be the best route from the location to the noun, using doors; if aim is not a direction, say "You can't think how to get there from here." instead; say "(heading [aim])[command clarification break]"; try going aim; if the location is not the noun, say "You'll have to stop here." This will allow the player to travel toward rooms he has already visited even if they are several moves away. Finally, so that the player can also use the names of doors as commands: Understand "[door]" as entering. And in keeping with the original, we might add to our scenario a rule or two about restrictions on movement, just to test that it's all working right: The player carries a plover egg and a platinum pyramid. The description of the egg is "Plover's eggs, by the way, are quite large." The printed name of the egg is "emerald the size of a plover's egg". Understand "emerald" as the egg. The description of the pyramid is "The platinum pyramid is 8 inches on a side!" Instead of going to the Plover Room from the Alcove when the player carries something which is not the plover egg: say "Something you're carrying won't fit through the tunnel with you. You'd best take inventory and drop something." Test me with "go to misty cavern / go to dark corridor / go to plover room / go to alcove / go to dark corridor / drop pyramid / go to dark corridor / g / go to alcove / g / go to misty cavern".

296
| Example Safari Guide The same functionality, but making the player continue to move until he reaches his destination or a barrier, handling all openable doors on the way. |
RB

Previous | Contents | Next