§9.2. Awarding points
Traditionally-written games award points throughout play, as an indication of progress. If we want to be traditional, we must first write:
Use scoring.
Without this, the SCORE, NOTIFY ON and NOTIFY OFF commands do not work; the final score is not shown at the end of a game; and the status line above the player's text area shows only the turn count, not (as is more usual) both the score and the turn count. Changing the "score" (see below) has no visible effect, though it is not actually illegal.
With "Use scoring" in place, we can award points as follows:
increase the score by 5;
substituting whatever number we feel is appropriate. We should be careful not to give out the same points over and over, that is, not to reward the same basic achievement many times over if the player simply repeats the same action. This, for instance, is open to abuse:
After taking the trophy:
increase the score by 5;
say "Well done!"
The player may simply take the trophy, drop it again, take it again, ... and win five points every time around. We can prevent this by phrasing the rule more carefully:
After taking the trophy when the trophy is not handled:
increase the score by 5;
say "Well done!"
Rather than being an open-ended scoring system, IF normally has a maximum possible score, which can be specified with a sentence like so:
The maximum score is 10.
The score and maximum score are just numbers that vary, so we can freely change them:
After eating the poisoned mushroom:
now the score is -100.
![]() | Start of Chapter 9: Time |
![]() | Back to §9.1. When play begins |
![]() | Onward to §9.3. Introducing tables: rankings |
Suppose we want to reward the player the first time he reaches a given room. The "unvisited" attribute is useful for this: unlike such constructions as "going to a room for the first time", it doesn't develop false positives when the player has merely tried to go to the room in question. "Every turn when the player is in a room for the first time" is also unhelpful, because it continues to be true as long as the player is in a room on his first visit there.
|
|
Suppose we want to reward the player the first time he reaches a given room. The "unvisited" attribute is useful for this: unlike such constructions as "going to a room for the first time", it doesn't develop false positives when the player has merely tried to go to the room in question. "Every turn when the player is in a room for the first time" is also unhelpful, because it continues to be true as long as the player is in a room on his first visit there.
Suppose we want to reward the player the first time he reaches a given room. The "unvisited" attribute is useful for this: unlike such constructions as "going to a room for the first time", it doesn't develop false positives when the player has merely tried to go to the room in question. "Every turn when the player is in a room for the first time" is also unhelpful, because it continues to be true as long as the player is in a room on his first visit there.
|
|