81 lines
2.3 KiB
Text
81 lines
2.3 KiB
Text
exits = [[1,4,7], [0,2,9], [1,3,11], [2,4,13], [0,3,5],
|
|
[4,6,14], [5,7,16], [0,6,8], [7,9,17], [1,8,10],
|
|
[9,11,18], [2,10,12], [11,13,19], [3,12,14], [5,13,15],
|
|
[14,16,19], [6,15,17], [8,16,18], [10,17,19], [12,15,18]]
|
|
hazard = [null] * 20
|
|
emptyRoom = function()
|
|
while true
|
|
room = floor(rnd * 20)
|
|
if not hazard[room] then return room
|
|
end while
|
|
end function
|
|
for i in range(1, 2)
|
|
hazard[emptyRoom] = "bat"
|
|
hazard[emptyRoom] = "pit"
|
|
end for
|
|
hazard[emptyRoom] = "wumpus"
|
|
|
|
print "*** HUNT THE WUMPUS ***"
|
|
print "-----------------------"
|
|
curRoom = emptyRoom
|
|
arrows = 5
|
|
|
|
checkWumpus = function()
|
|
if hazard[curRoom] == "wumpus" then
|
|
print "You find yourself face to face with the wumpus."
|
|
print "It eats you whole."
|
|
print "GAME OVER"; exit
|
|
end if
|
|
end function
|
|
|
|
while true
|
|
print "You are in room " + curRoom + "."
|
|
checkWumpus
|
|
for r in exits[curRoom]
|
|
if hazard[r] == "wumpus" then print "You smell something terrible nearby."
|
|
if hazard[r] == "bat" then print "You hear a rustling."
|
|
if hazard[r] == "pit" then print "You feel a cold wind blowing from a nearby cavern."
|
|
end for
|
|
print "Tunnels lead to: " + exits[curRoom].join(", ")
|
|
print "You have " + arrows + " arrows."; print
|
|
while true
|
|
m = input("M)ove, S)hoot, or Q)uit? ").lower
|
|
if m == "q" then exit
|
|
if m != "m" and m != "s" then continue
|
|
target = input("Which room? ").val
|
|
if exits[curRoom].indexOf(target) == null then
|
|
print "Cannot get there from here."
|
|
else if m == "m" then
|
|
curRoom = target
|
|
if hazard[curRoom] == "bat" then
|
|
print "You have entered the lair of a giant bat."
|
|
curRoom = emptyRoom
|
|
print "It picks you up and drops you in room " + curRoom + "."
|
|
else if hazard[curRoom] == "pit" then
|
|
print "The ground gives way beneath your feet."
|
|
print "You fall into a deep abyss."
|
|
print "GAME OVER"; exit
|
|
end if
|
|
else
|
|
arrows = arrows - 1
|
|
if hazard[target] == "wumpus" then
|
|
print "Congratulations! You shot the wumpus!"
|
|
exit
|
|
end if
|
|
print "You missed."
|
|
if rnd < 0.75 then
|
|
print "The wumpus wakes from his slumber."
|
|
hazard[hazard.indexOf("wumpus")] = null
|
|
hazard[emptyRoom] = "wumpus"
|
|
checkWumpus
|
|
end if
|
|
if arrows == 0 then
|
|
print "As you grasp at your empty quiver, "
|
|
print "you hear a large beast approaching..."
|
|
hazard[curRoom] = "wumpus"
|
|
checkWumpus
|
|
end if
|
|
end if
|
|
break
|
|
end while
|
|
end while
|