/wumpus-gnu-apl

'Hunt the Wumpus', as found in More BASIC Computer Games, ported to GNU APL.

Primary LanguageAPLGNU General Public License v2.0GPL-2.0

wumpus-gnu-apl

'Hunt the Wumpus', as found in More BASIC Computer Games, ported to GNU APL.

wumpus-squashed-dodecahedron.jpg

A good intro on how to do basic user interaction in GNU APL (and perhaps Dyalog, with some adaptations).

As found on RosettaCode.

For reference, a publication in The Best of Creative Computing, Vol. 1, 1976 gives a good description of the game.

The rules and implementation may not be 100% original according to discussions on RosettaCode, but it's close enough :)

The rules are:

The game is set in a cave that consists of a 20 room labyrinth. Each room is connected to 3 other rooms (the cave is modeled after the vertices of a >dodecahedron). The objective of the player is to find and kill the horrendous beast Wumpus that lurks in the cave.

The player has 5 arrows. If they run out of arrows before killing the Wumpus, the player loses the game.

In the cave there are:

One Wumpus Two giant bats Two bottomless pits If the player enters a room with the Wumpus, he is eaten by it and the game is lost.

If the player enters a room with a bottomless pit, he falls into it and the game is lost.

If the player enters a room with a giant bat, the bat takes him and transports him into a random empty room.

Each turn the player can either walk into an adjacent room or shoot into an adjacent room.

Whenever the player enters a room, he "senses" what happens in adjacent rooms. The messages are:

Nearby Wumpus: "You smell something terrible nearby." Nearby bat: "You hear a rustling." Nearby pit: "You feel a cold wind blowing from a nearby cavern."

When the player shoots, he wins the game if he is shooting in the room with the Wumpus. If he shoots into another room, the Wumpus has a 75% of chance of waking up and moving into an adjacent room: if this is the room with the player, he eats him up and the game is lost.