As part of the Critical Code Studies Working Group inquiry (membership-only link, but a publication is planned) into the original source code for Crowther’s Colossal Cave Adventure, I asked…
When does Crowther use exclamation marks?
It’s not a deep philosophical question, and the fate of the world does not hang on the outcome. But it’s one way to zoom in on the interaction between the user experience, and the interaction between instructions and data that generate that experience.
In the source code, reporting a dwarf attack:
78 FORMAT(‘ ‘,I2,’ OF THEM THROW KNIVES AT YOU!’,/)
In the data file, responding to properly formed but impossible requests:
23 YOU CAN’T GO IN THROUGH A LOCKED STEEL GRATE!
24 YOU DON’T FIT DOWN A TWO INCH HOLE!
Calling attention to the snake and treasures
210 THERE IS A LARGE SPARKLING NUGGET OF GOLD HERE!
11 A HUGE GREEN FIERCE SNAKE BARS THE WAY!
112 A CRYSTAL BRIDGE NOW SPANS THE FISSURE.
213 THERE ARE DIAMONDS HERE!
214 THERE ARE BARS OF SILVER HERE!
215 THERE IS PRECIOUS JEWELRY HERE!
216 THERE ARE MANY COINS HERE!
Note that 112, the line mentioning the crystal bridge, lacks an
exclamation mark. There’s nothing to DO with this bridge once it
appears, so that it seems to become part of the scenery, rather than
an object to interact with.
Other objects do not get exclamation marks.
19 THERE IS FOOD HERE.
20 THERE IS A BOTTLE OF WATER HERE.
120 THERE IS AN EMPTY BOTTLE HERE.
221 THERE IS A LITTLE AXE HERE
The axe is your only defense against the dwarves; it gets no
punctuation at all, perhaps because when the axe is likely to appear,
these sorts of things are going on:
4 THERE IS A THREATENING LITTLE DWARF IN THE ROOM WITH YOU!
5 ONE SHARP NASTY KNIFE IS THROWN AT YOU!
6 HE GETS YOU!
7 NONE OF THEM HIT YOU!
The “HOLLOW VOICE” does not speak ‘PLUGH’ with an exclamation mark. But
the voice of the parser does express a bit of frustration with the
13 I DON’T UNDERSTAND THAT!
24 YOU ARE ALREADY CARRYING IT!
25 YOU CAN’T BE SERIOUS!
28 THERE IS NOTHING HERE WITH A LOCK!
29 YOU AREN’T CARRYING IT!
31 YOU HAVE NO KEYS!
And, after moving in darkness,
23 YOU FELL INTO A PIT AND BROKE EVERY BONE IN YOUR BODY!
The long in-game HELP text includes two exclamation mark (here are excerpts):
51 MORE WORDS. USUALLY PEOPLE TRYING TO MANIPULATE AN
51 OBJECT ARE ATTEMPTING SOMETHING BEYOND THEIR (OR MY!)
51 CAPABILITIES AND SHOULD TRY A COMPLETELY DIFFERENT TACK.
51 LOST IN THE FOREST. ALSO, NOTE THAT CAVE PASSAGES TURN A
51 LOT, AND THAT LEAVING A ROOM TO THE NORTH DOES NOT GUARANTEE
51 ENTERING THE NEXT FROM THE SOUTH. GOOD LUCK!
Since we’ve already seen “HE GETS YOU!” in string 6, it’s not immediately clear why we also need
52 IT MISSES!
53 IT GETS YOU!
..but the dwarf battle sequence seems to require sequential miss/hit
messages, since the random variable STICK seems to determine whether
the dwarf attack is successful, and these lines
First print out either message 52 “IT MISSES!” or 53 “IT GETS YOU,”
based on whether STICK is 0 or 1. The GOTO statement will check the
value of STICK+1 (which is either 1 or 2), and execute 71 if 1, and 83
And, of course, when the game begins, we get two exclamation marks:
65 WELCOME TO ADVENTURE!! WOULD YOU LIKE INSTRUCTIONS?
After eating the food ration,
After dropping the f-bomb:
87 WATCH IT!