Bill MacKenty

  Home     Computing     Teaching     Bushcraft     Games     Writing     About  

Quivering Communist Zombie Space Death - Part 2

Posted in Games in education Text-based gaming on 06 - June 2011 at 07:11 AM (about 13 years ago) 283 views.

(Part 1 here)

I have started this exercise late in the year, and haven’t had any luck grabbing students. Drat.  I invited some teachers to participate, but they haven’t bitten. I intend to continue onward, building our text-based space game about quivering communist zombies. 

A simple exercise, to create a reasonably accurate model of the solar system, yes? Let’s dig.

We start with the planets (trivial google search) and then move to modeling them in
hspace. We use the new universe wiki  to help us. We use this fairly well referenced guide to get us started.

Creating the actual planets objects is pretty easy. In pennmush, logged in as a wizard (with hspace running, of course):

@create Earth
@create Mars
@create Venus
@create Sun

etc…

We then assign each object an attribute . 1 is an internal attribute for planets in our example, assume #4 is the object for earth, and #5 is the object for Mars

@space/addobject #4=1
@space/addobject #5=1

And then we need to define size, mass, name and location. And here, friends, is where things get interesting. Let’s look at the actual command syntax:

@space/setobject #5/NAME=Earth
@space/setobject #5/MASS= MASS HERE
@space/setobject #5/LOCATION=10000 10000 0

So, what is the mass of earth? Again, a google search reveals: 5.9742×10

24

(it is referenced to NASA, and I checked the source, so it looks legit.

A first task is to convert scientific notation to standard number that hspace can understand.  We know 5.9742×10

24

  equals 5,974,200,000,000,000,000,000,000 (which is freaking huge) So we simply plug this in.

@space/setobject #5/MASS= 5974200000000000000000000

We do the same thing for size. I know, MASS isn’t SIZE, but for the purposes of this game, this will work. According to the wiki, hspace uses size of an object for sensor reading (very weak sensors might not see pluto) and MASS for how much an object can “hold”. For planets, this is kind of irrelevant. But if you have a big ship that serves as an aircraft carrier, mass is important.

We are using cartesian coordinates to represent position. We’ve placed the center of the sun at 0,0,0.  So where do we put earth?

We are not modeling orbits, but we are trying to be “about right” with distances. So we return to our resource page and look at how far earth is from the sun. We see the mean distance is 149,597,890 kilometers. so, if the sun is at 0,0,0, we can put the earth at 149597890,0,0 This puts the earth on a straight line from the sun - pretty far away!  The syntax:

@space/setobject #5/LOCATION=149597890, 0,  0

We’ll need a pretty zippy ship to get around our solar system. I wonder how fast a ship would need to be in order to make it from Earth to Mars in a decent amount of time?


Quivering Communist Zombie Space Death - Part 1

Posted in Educational Tech Design Games in education Practical Advice Text-based gaming on 06 - May 2011 at 07:58 PM (13 years ago) 342 views.

I'm developing a new game, Quivering Communist Zombie Space Death. It's a text based game with an integrated (hardcoded) space system. What this game means, and why I'm developing it, is what this post is about.

Quivering Communist Zombie Space Death (herein qczsd) is a game where players take on the role of humans desperately trying to save the earth from quivering communist zombies in space. The game is deeply educational, deeply funny, satirical, blatantly ribald, and of course most of all, fun. Basic mechanics are all textual! The player creates a persona (over-the-top stereotypical), get's a ship, and flys on different missions to take out the zombies. There is a leveling up mechanism, and "buy better crap for your ship dynamic". The zombies will be AI bots, and there will be all sorts of funny in-space dangers.

Here's the website: http://quiveringcommunistzombiespacedeath.com/index.html

I'll be blogging frequently about qczsd - talking about my journey of learning as I create this new game. Let's start, though, with the first task to make this game.

We are using trusty pennmush, which can be found by clicking here and hspace, which can be found by clicking here.

Let's start off with the first student assignment. Let's see where they go with this one:

We are going to work with an accurate model of our solar system. What does this mean? It means that we are going to try to accurately model the planets, their distance from one another, mass, and even their moons. We of course also need to know their location from each other. What we are NOT modeling is orbits and gravity (I'll write the "difference between fun and realistic" post later).

So, finding the names, mass, and distance of our solar-system planets is as easy as a simple google search. It might help to cross-reference them so we know the numbers are right. But we will eventually need to represent the location of the planets on a XYZ grid. Here's where it get's kind of interesting.

How do astronomers (you know, the dolts who didn't even see the communist zombies coming) measure and represent distance in space? What scale of measurement do they use? How do they represent mass? Let's start with a simple assumption (that might be wrong). Let's say the very center of the sun is 0,0,0. Where would the center of the sun's closest planet, Mercury, be? Students should answer these questions and have the answers in the comment of this blog post as soon as they can.


Hspace and Textual 3D space

Posted in Text-based gaming Links on 29 - November 2010 at 05:11 PM (13 years ago) 205 views.

As my 4 regular readers know, I’m a text-based gaming guy. There’s something “pure” about computers, networks, and text based games that appeals to me. I started back in the heady days of infocom, and moved to pennmush.

In the interest of sharing my geek cred, I became interested in Star Trek MUSHes about 5 or 6 years ago - really great coded systems, especially their space systems. You interact with the game (only through text) and fly through 3D space. Imagine Eve online, only textual.

A text-based space system is exactly what it sounds like; a text-based representation of 3 dimensional space. You want a sensor report?  Try this:

—[Sensor Report]——————————————————————————————————————————————
### Type Res Bearing Range   S Heading Speed S Name           Class Flags
—-———-———-———- -———-———-———————————————
  1 Base 100 224 328 0.71981 A   0 0   None F IRS D’Stelam         AbEem
—-———-———-———- -———-———-———————————————
  2 Plan 100 296 309 [0.933] V   0 0   None D Addams IX           A  
  3 Plan 100   0 0   0.00000 F   0 0   None F Marion III           AEe  
———————————————————————————————————————-
      Course: 0.000 0.000             Speed: Stationary      
      Location: Open Space             Velocity: Stationary      
———————————————————————————————————————-
(screen grab from ats: among the stars, which uses A-Space). Trading, combat, role playing, and even skill building are all custom built text-based systems.

My point is these games are totally textual and totally immersive. Really great stuff. Imagine, if you will, what it would be like to play a book - except of course you choose where you want to go, and what you want to do. I’ll be increasing my frequency of text-based gaming, and text based gaming resources.

http://www.hspace.org/
https://www.hsdev.org/trac/
http://community.pennmush.org
http://code.google.com/p/pennmush/downloads/list


Transitioning to google apps for education

Posted in Educational Tech Design Leadership HOWTO google Text-based gaming on 02 - October 2010 at 12:37 PM (13 years ago) 304 views.

In four days, our school will be transitioning to google apps for education. I'm leading this transition, it's my first big organizational change as a director of technology.

When I started as the director of technology here, half the school was using google apps for education (using one domain) and the other half of the school was using Novell Groupwise (using a different domain).

Messages were being forwarded, pop'ed, filtered, and missed. It wasn't a great situation. Moreover, there was no school-wide calendaring solution; again, the result of two different systems.

Usually, when you want to create change in an organization, you really need to get buy-in. You know, all those buzzwords like stakeholders, collaboration, shared-vision, etc. All that stuff is important. If you don't bring people on board when you change, they won't buy it and the change won't work.

However, in this case, we just did it.

I believe the success or failure of this change will hinge on the professional development, training and support our staff receives. The actual technical change is minor (we are simply pointing the old domain MX records to google's MX records - not rocket science).

However for end users, this is a big change. Like any organization, we have a bell-curve of technical ability. Some uber-users, and some people who, well, aren't uber.

We:

1. Setup a gmail moodle course chock full of resources, links, videos, PDFs, FAQ's, etc.

2. Recruited in-house gmail experts (calling them gmail ninjas). Out of 170 end-users, we have 30 people who will be walking around on "switchover day" ready to make a difference, offer assistance, and ask for help.

3. We have already moved all email, contacts, and cabinets from groupwise to gmail. I think this is a key point: users need to know what they don't know before you train them. This way, when training starts, they have a long list of questions.

4. We bought this fantastic video training from boost elearning. I'm no shill, but these guys do a whole lot right. My entire staff has a full year of gmail web-based training. From anywhere. And the courses are designed so users can just learn the part they are interested in; want to make a vacation responder? It's a two-minute video.

5. I met with each faculty and carefully explained WHY we are moving, and what benefits we expect to realize as a result of this switch. I listened carefully to concerns (what happens if the cloud blows up and data ownership). Based on these concerns, we purchased a backup solution for our school - all users have their documents, emails, and calendar data backed up on a third-party server.

6. Setup increased monitoring - monitors with outgoing / incoming status, monitors looking at every device in our organization (thank you Nagios), monitoring for our wireless status. We have a control center where everyone can see everything that is happening on our network.

7. I will be sharing our communication strategy on Monday - who calls who if a user cant access email, regular check-in times through the day. We've also setup a hot-support line with our external ISP. They will be on standby if we need anything.

8. Our in-house support help will be wearing t-shirts on the switchover day. I think it matters to actually see the people who are helping.

I'll keep my finger crossed, and of course look forward to any comments or questions as we move forward.


Myrddin’s Global Bulletin Board v. 4.0.6

Posted in Text-based gaming on 28 - June 2009 at 06:32 PM (14 years ago) 178 views.

Mirrored from here. This is posted for archival purposes.

Myrddin_Global_406.txt
bb_help.txt
bb_help_ascii.txt


Review: Legends of Zork

Posted in Text-based gaming on 02 - April 2009 at 09:24 PM (15 years ago) 219 views.

Legends of Zork

I love the art style. I love the monsters. I love the locations. I love the “feel”. Very well realized, but, um, activision….

THIS ISNT ZORK!

This is something….awful. This is some horrible, Frankensteinian aberration. This is heresy. This is a gut-wrenching vomit soaked, “find out you have cancer” thing to do to the zork series. W.T.F. ?!

This is…so….*gasp* web-based. You’ve made a pretty decent web-based game, and given it the spiritual name of the most important game to EVER COME TO COMPUTERS. Do you see where I’m coming from? DO YOU SEE WHAT YOU’VE DONE?! Kingdom of loathing is a great web based game, and in all honest more deserving of the title zork. Have you guys ever played nethack? Adventure? MUD II? Do you even KNOW who Richard Bartle is?

This is like a terrible thing to do with zork! Zork is a text-based game! text-based! that’s why WE LOVED ZORK because we could imagine stuff - you know - WITH OUR IMAGINATION THINGY!!!!!

But text based games are alive and well - both multiplayer (in the MUD and MUSH community) and single player (in the interactive fiction community).


PS: whoever thought of the idea of buying coconuts for fucking action points needs to be eaten by a grue. you know about that, right?


What would you teach a group of 11 year old kids about text based games - part 3

Posted in Teaching Diary Text-based gaming on 08 - October 2008 at 05:38 PM (15 years ago) 297 views.

part 1  part 2

We started our exploration of MUD’s today (specifically, we played legend mud).  We talked about the similarities and differences between interactive fiction and MUDS. We used Atlantis client to connect. 

After a brief character generation process, we settled into the game - the syntax and milieu was familiar to the kids, save the “real time” aspect of muds.  We noted the status (HP, MP and MV) and looked at SCORE, STAT, and other MUD commands. We put our party in a group and started with small MOB’s like rats, toads and snakes.

The excitement was palpable as the combat started - experience points started flowing into our group and each combat was followed by a period of rest as we waitied for our hit points to regenerate. It wasn’t long before we ended up in a swamp, and encountered something (I forget the name) but it ended in a total party wipe.  Humbled, we restarted and continued our adventures. Again, I was struck with their enthusiasm and excitement. These kids were (not literally) glued to the screen, laughing, jumping out of their seats and carefully coordinating their attacks. A snippet:

Student 1: ok. Everyone type attack toad, but DONT PUSH ENTER!
Student 2: ok
Student 3: where is the d key? oh yea. ok!
Student 4: ready!
Student 1: ok! now!

(The poor toad never had a chance)


The time went quickly and with 5 minutes left, we debriefed.  Again, we discussed the differences between MUDs and interactive fiction. We talked about making a text based game, and they were full of questions; how long does it take? Can I make a mud? I want to make a mud like our school! Is it difficult? They seem especially interested in making their own game…I warned them that making a game takes a long time.

I told them we still need to explore the MUSH family of games (there is a world war II mush I might take them to in a few weeks) and then we will decide what kind of game we will make.  I reminded them about the differences between single player and multiplayer, and I told them I knew more about mushing and interactive fiction than mudding, but if they really wanted to make a mud, I’d learn with them.

Next week, we will continue to play this mud, and I’ll start looking for a decent mush.


Text-based games with a group of 11 year old kids

Posted in Games in education Text-based gaming on 17 - September 2008 at 09:45 PM (15 years ago) 260 views.

I’ve started teaching a small group of 4th and 5th graders (age 10 and 11) about text based games.  We are meeting in an after school program. I wrote my first introduction about this project here and cross-posted it to to a couple of community listserves.

Yesterday was our first class, and I admit, I was nervous.  How would a 11 year old kid respond to a text-based game in 2008? My anxiety increased as one of the kids asked me if we were going to design video games. I told him no, we might design text-based games if we have time. I started with an introduction “you are about to play one of the very first computer games” (ok, a bit of a stretch, but it’s kind of close). Enticed, they started typing

On the screen, a blue screen with the words “You are standing West of a white house….”

I wrote the cardinal directions on a whiteboard, as well as some commands they might need (look, i, open, close, etc..).  Then they began.  There was some initial playing with the parser:

kid ->  “you are stupid”
Zork -> “I don’t know the word “you”
kid -> “what am I supposed to do?”

I teased them a bit. “Make sure you examine everything, and if you find a weapon, I strongly suggest you get it…never know when you’re going to run into a troll who wants to eat you….”

The kids looked at me in disbelief. Troll? Weapons? Combat? WHERE?! They became glued to their screens and excitedly started pointing and yelling.

I was almost brought to tears (literally) when a young voiced piped up “Um, Mr. MacKenty, What’s a Grue?”.  I immediately halted the class and we reviewed the wikipedia entry about grues. I carefully explained that grues are sort of like rattlesnakes, in that they like to be left alone - but if they are annoyed, they might eat you. I told them if they want to avoid being eaten, it’s best to have some light available.  Immediately they started asking each other about the brass lantern in the old white house.

It was about 35 minutes into the class I realized how utterly and completely captivated the kids were. I mean, they were literally glued to the screens; in a state of flow - they were consulting invisclues, they had printed maps, and they were trying to write a guide to solve the game quickly.  It was a wonderful experience.

They didn’t solve zork, we ran out of time. But they did download the interpreter and the z machine files to usb drives so they could play it at home.

We’ll continue with Zork I next week, and I hope to introduce MUD’s the week after. 

This is why I love teaching.


Text based games in an after school program

Posted in Games in education Text-based gaming on 22 - June 2008 at 04:13 PM (15 years ago) 283 views.

I’ll be running an after-school class in text-based games next year (starting September 2008).  I’m quite excited about it, and there seems to be interest from many in the school community.

I’ve developed a tentative outline, and I have begun reaching out to others in the text-based gaming community to get some ideas and feedback. I’ll keep track of my progress here on my blog, and I’m really looking forward to running this class.

The class would last an entire school year (September through June), meeting once a week. So we would be looking at about 30 class meeting times (probably more like 20 with interruptions and field trips).

I have thought about this a bit, and here’s my basic outline:

Text based games

The classics:

play part of Adventure
play part of zork I
play a multiplayer text based game (but this is tricky as they will
all be minors)

MUDS

Talk about different code bases
Play some muds:
fantasy
science fiction
popular fiction
building
build a mud using (mud code base 1)
build a mud using (mud code base 2)
interviewing a mud builder
interviewing a mud creator

MUSHES

Talk about different mushes
Play some MUSHES:
fantasy
science fiction
popular fiction
building
Build a mush using the pennmush server

MUXes

playing muxes
playing a Battle tech mux

Interactive fiction

The big difference in interactive fiction and MU*‘s
playing IF: play some games
designing IF using Inform 7
Puzzles: what makes a puzzle fun?

Good writing

How to write a good story
How to write a good bad guy
General game skills
How to run a TP (tiny plot, from the mu* world)
Coded systems versus free form RP

 


RSS links for text-based games

Posted in Personal Text-based gaming on 04 - April 2008 at 04:22 PM (16 years ago) 264 views.

These are the RSS links I regularly review to keep abreast of events in the text-based-gaming community.    I am a text-based gaming aficionado here’s my meager page to more links and information about text-based games

.

      http://community.pennmush.org/rss.xml
      http://www.mudmagic.com/rss/code/livebookmark/rss20/index.xml
      http://feeds.feedburner.com/TMCForums
      http://feeds.feedburner.com/MudconnectReviews
      http://www.mudmagic.com/t/index.xml
      http://www.mudmagic.com/rss/listings/rss20/livebookmark/index.xml
      http://terranova.blogs.com/terra_nova/atom.xml
      http://www.topmudsites.com/forums/external.php?type=RSS2
      http://del.icio.us/rss/ulrichp/mush
      http://wora.netlosers.com/index.php?type=rss;action=.xml


Interactive Fiction after school program

Posted in Text-based gaming Links on 02 - April 2008 at 04:21 PM (16 years ago) 179 views.

http://if1.home.comcast.net/~if1/


Original fortran code for Adventure part 1

Posted in Text-based gaming on 02 - March 2008 at 02:55 PM (16 years ago) 186 views.

Cross posting this to reduce possibility of link rot and preserve important part of our heritage:

Source: http://jerz.setonhill.edu/if/crowther/
Original news story: http://www.gamedev.net/community/forums/topic.asp?topic_id=460192

If you are the owner of this code, and would like me to remove it, please let me know. kthxbai.


C ADVENTURES
IMPLICIT INTEGER(A-Z)
REAL RAN
COMMON RTEXT,LLINE
DIMENSION IOBJ(300),ICHAIN(100),IPLACE(100)
1 ,IFIXED(100),COND(300),PROP(100),ABB(300),LLINE(1000,22)
2 ,LTEXT(300),STEXT(300),KEY(300),DEFAULT(300),TRAVEL(1000)
3 ,TK(25),KTAB(1000),ATAB(1000),BTEXT(200),DSEEN(10)
4 ,DLOC(10),ODLOC(10),DTRAV(20),RTEXT(100),JSPKT(100)
5 ,IPLT(100),IFIXT(100),QUIP(100)

C READ THE PARAMETERS

IF(SETUP.NE.0) GOTO 1
SETUP=1
KEYS=1
LAMP=2
GRATE=3
ROD=5
BIRD=7
NUGGET=10
SNAKE=11
FOOD=19
WATER=20
AXE=21
DATA(QUIP(I),I=1,9)/50,51,64,66,67,68,69,49,79/
DATA(JSPKT(I),I=1,16)/24,29,0,31,0,31,38,38,42,42,43,46,77,71
1 ,73,75/
DATA(IPLT(I),I=1,20)/3,3,8,10,11,14,13,9,15,18,19,17,27,28,29
1 ,30,0,0,3,3/
DATA(IFIXT(I),I=1,20)/0,0,1,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0/
DATA(DTRAV(I),I=1,15)/36,28,19,30,62,60,41,27,17,15,19,28,36
1 ,300,300/
DO 1001 I=1,300
STEXT(I)=0
IF(I.LE.200) BTEXT(I)=0
IF(I.LE.100)RTEXT(I)=0
1001 LTEXT(I)=0
I=1
CALL IFILE(1,‘TEXT’)
1002 READ(1,1003) IKIND
1003 FORMAT(G)
GOTO(1100,1004,1004,1013,1020,1004,1004)(IKIND+1)
1004 READ(1,1005)JKIND,(LLINE(I,J),J=3,22)
1005 FORMAT(1G,20A5)
IF(JKIND.EQ.-1) GOTO 1002
DO 1006 K=1,20
KK=K
IF(LLINE(I,21-K).NE.’ ‘) GOTO 1007
1006 CONTINUE
STOP
1007 LLINE(I,2)=20-KK+1
LLINE(I,1)=0
IF(IKIND.EQ.6)GOTO 1023
IF(IKIND.EQ.5)GOTO 1011
IF(IKIND.EQ.1) GOTO 1008
IF(STEXT(JKIND).NE.0) GOTO 1009
STEXT(JKIND)=I
GOTO 1010

1008 IF(LTEXT(JKIND).NE.0) GOTO 1009
LTEXT(JKIND)=I
GOTO 1010
1009 LLINE(I-1,1)=I
1010 I=I+1
IF(I.NE.1000)GOTO 1004
PAUSE ‘TOO MANY LINES’

1011 IF(JKIND.LT.200)GOTO 1012
IF(BTEXT(JKIND-100).NE.0)GOTO 1009
BTEXT(JKIND-100)=I
BTEXT(JKIND-200)=I
GOTO 1010
1012 IF(BTEXT(JKIND).NE.0)GOTO 1009
BTEXT(JKIND)=I
GOTO 1010

1023 IF(RTEXT(JKIND).NE.0) GOTO 1009
RTEXT(JKIND)=I
GOTO 1010

1013 I=1
1014 READ(1,1015)JKIND,LKIND,(TK(L),L=1,10)
1015 FORMAT(12G)
IF(JKIND.EQ.-1) GOTO 1002
IF(KEY(JKIND).NE.0) GOTO 1016
KEY(JKIND)=I
GOTO 1017
1016 TRAVEL(I-1)=-TRAVEL(I-1)
1017 DO 1018 L=1,10
IF(TK(L).EQ.0) GOTO 1019
TRAVEL(I)=LKIND*1024+TK(L)
I=I+1
IF(I.EQ.1000) STOP
1018 CONTINUE
1019 TRAVEL(I-1)=-TRAVEL(I-1)
GOTO 1014

1020 DO 1022 IU=1,1000
READ(1,1021) KTAB(IU),ATAB(IU)
1021 FORMAT(G,A5)
IF(KTAB(IU).EQ.-1)GOTO 1002
1022 CONTINUE
PAUSE ‘TOO MANY WORDS’


C TRAVEL = NEG IF LAST THIS SOURCE + DEST*1024 + KEYWORD

C COND = 1 IF LIGHT,  2 IF DON T ASK QUESTION

 

1100 DO 1101 I=1,100
IPLACE(I)=IPLT(I)
IFIXED(I)=IFIXT(I)
1101 ICHAIN(I)=0

DO 1102 I=1,300
COND(I)=0
ABB(I)=0
1102 IOBJ(I)=0
DO 1103 I=1,10
1103 COND(I)=1
COND(16)=2
COND(20)=2
COND(21)=2
COND(22)=2
COND(23)=2
COND(24)=2
COND(25)=2
COND(26)=2
COND(31)=2
COND(32)=2
COND(79)=2

DO 1107 I=1,100
KTEM=IPLACE(I)
IF(KTEM.EQ.0)GOTO 1107
IF(IOBJ(KTEM).NE.0) GOTO 1104
IOBJ(KTEM)=I
GO TO 1107
1104 KTEM=IOBJ(KTEM)
1105 IF(ICHAIN(KTEM).NE.0) GOTO 1106
ICHAIN(KTEM)=I
GOTO 1107
1106 KTEM=ICHAIN(KTEM)
GOTO 1105
1107 CONTINUE
IDWARF=0
IFIRST=1
IWEST=0
ILONG=1
IDETAL=0
PAUSE ‘INIT DONE’

 

1 CALL YES(65,1,0,YEA)
L=1
LOC=1
2 DO 73 I=1,3
IF(ODLOC(I).NE.L.OR.DSEEN(I).EQ.0)GOTO 73
L=LOC
CALL SPEAK(2)
GOTO 74
73 CONTINUE
74 LOC=L

C DWARF STUFF

IF(IDWARF.NE.0) GOTO 60
IF(LOC.EQ.15) IDWARF=1
GOTO 71
60 IF(IDWARF.NE.1)GOTO 63
IF(RAN(QZ).GT.0.05) GOTO 71
IDWARF=2
DO 61 I=1,3
DLOC(I)=0
ODLOC(I)=0
61 DSEEN(I)=0
CALL SPEAK(3)
ICHAIN(AXE)=IOBJ(LOC)
IOBJ(LOC)=AXE
IPLACE(AXE)=LOC
GOTO 71

63 IDWARF=IDWARF+1
ATTACK=0
DTOT=0
STICK=0
DO 66 I=1,3
IF(2*I+IDWARF.LT.8)GOTO 66
IF(2*I+IDWARF.GT.23.AND.DSEEN(I).EQ.0)GOTO 66
ODLOC(I)=DLOC(I)
IF(DSEEN(I).NE.0.AND.LOC.GT.14)GOTO 65
DLOC(I)=DTRAV(I*2+IDWARF-8)
DSEEN(I)=0
IF(DLOC(I).NE.LOC.AND.ODLOC(I).NE.LOC) GOTO 66
65 DSEEN(I)=1
DLOC(I)=LOC
DTOT=DTOT+1
IF(ODLOC(I).NE.DLOC(I)) GOTO 66
ATTACK=ATTACK+1
IF(RAN(QZ).LT.0.1) STICK=STICK+1
66 CONTINUE
IF(DTOT.EQ.0) GOTO 71
IF(DTOT.EQ.1)GOTO 75
TYPE 67,DTOT
67 FORMAT(’ THERE ARE ‘,I2,’ THREATENING LITTLE DWARVES IN THE
1 ROOM WITH YOU.’,/)
GOTO 77
75 CALL SPEAK(4)
77 IF(ATTACK.EQ.0)GOTO 71
IF(ATTACK.EQ.1)GOTO 79
TYPE 78,ATTACK
78 FORMAT(’ ‘,I2,’ OF THEM THROW KNIVES AT YOU!’,/)
GOTO 81
79 CALL SPEAK(5)
CALL SPEAK(52+STICK)
GOTO(71,83)(STICK+1)

81 IF(STICK.EQ.0) GOTO 69
IF(STICK.EQ.1)GOTO 82
TYPE 68,STICK
68 FORMAT(’ ‘,I2,’ OF THEM GET YOU.’,/)
GOTO 83
82 CALL SPEAK(6)
83 PAUSE ‘GAMES OVER’
GOTO 71
69 CALL SPEAK(7)

C PLACE DESCRIPTOR

 

71 KK=STEXT(L)
IF(ABB(L).EQ.0.OR.KK.EQ.0)KK=LTEXT(L)
IF(KK.EQ.0) GOTO 7
4 TYPE 5,(LLINE(KK,JJ),JJ=3,LLINE(KK,2))
5 FORMAT(20A5)
KK=KK+1
IF(LLINE(KK-1,1).NE.0) GOTO 4
TYPE 6
6 FORMAT(/)
7 IF(COND(L).EQ.2)GOTO 8
IF(LOC.EQ.33.AND.RAN(QZ).LT.0.25)CALL SPEAK(8)
J=L
GOTO 2000

C GO GET A NEW LOCATION

8 KK=KEY(LOC)
IF(KK.EQ.0)GOTO 19
IF(K.EQ.57)GOTO 32
IF(K.EQ.67)GOTO 40
IF(K.EQ.8)GOTO 12
LOLD=L
9 LL=TRAVEL(KK)
IF(LL.LT.0) LL=-LL
IF(1.EQ.MOD(LL,1024))GOTO 10
IF(K.EQ.MOD(LL,1024))GOTO 10
IF(TRAVEL(KK).LT.0)GOTO 11
KK=KK+1
GOTO 9
12 TEMP=LOLD
LOLD=L
L=TEMP
GOTO 21
10 L=LL/1024
GOTO 21
11 JSPK=12
IF(K.GE.43.AND.K.LE.46)JSPK=9
IF(K.EQ.29.OR.K.EQ.30)JSPK=9
IF(K.EQ.7.OR.K.EQ.8.OR.K.EQ.36.OR.K.EQ.37.OR.K.EQ.68)
1 JSPK=10
IF(K.EQ.11.OR.K.EQ.19)JSPK=11
IF(JVERB.EQ.1)JSPK=59
IF(K.EQ.48)JSPK=42
IF(K.EQ.17)JSPK=80
CALL SPEAK(JSPK)
GOTO 2
19 CALL SPEAK(13)
L=LOC
IF(IFIRST.EQ.0) CALL SPEAK(14)
21 IF(L.LT.300)GOTO 2
IL=L-300+1
GOTO(22,23,24,25,26,31,27,28,29,30,33,34,36,37)IL
GOTO 2

22 L=6
IF(RAN(QZ).GT.0.5) L=5
GOTO 2
23 L=23
IF(PROP(GRATE).NE.0) L=9
GOTO 2
24 L=9
IF(PROP(GRATE).NE.0)L=8
GOTO 2
25 L=20
IF(IPLACE(NUGGET).NE.-1)L=15
GOTO 2
26 L=22
IF(IPLACE(NUGGET).NE.-1) L=14
GOTO 2
27 L=27
IF(PROP(12).EQ.0)L=31
GOTO 2
28 L=28
IF(PROP(SNAKE).EQ.0)L=32
GOTO 2
29 L=29
IF(PROP(SNAKE).EQ.0) L=32
GOTO 2
30 L=30
IF(PROP(SNAKE).EQ.0) L=32
GOTO 2
31 PAUSE ‘GAME IS OVER’
GOTO 1100
32 IF(IDETAL.LT.3)CALL SPEAK(15)
IDETAL=IDETAL+1
L=LOC
ABB(L)=0
GOTO 2
33 L=8
IF(PROP(GRATE).EQ.0) L=9
GOTO 2
34 IF(RAN(QZ).GT.0.2)GOTO 35
L=68
GOTO 2
35 L=65
38 CALL SPEAK(56)
GOTO 2
36 IF(RAN(QZ).GT.0.2)GOTO 35
L=39
IF(RAN(QZ).GT.0.5)L=70
GOTO 2
37 L=66
IF(RAN(QZ).GT.0.4)GOTO 38
L=71
IF(RAN(QZ).GT.0.25)L=72
GOTO 2
39 L=66
IF(RAN(QZ).GT.0.2)GOTO 38
L=77
GOTO 2
40 IF(LOC.LT.8)CALL SPEAK(57)
IF(LOC.GE.8)CALL SPEAK(58)
L=LOC
GOTO 2

 

C DO NEXT INPUT


2000 LTRUBL=0
LOC=J
ABB(J)=MOD((ABB(J)+1),5)
IDARK=0
IF(MOD(COND(J),2).EQ.1) GOTO 2003
IF((IPLACE(2).NE.J).AND.(IPLACE(2).NE.-1)) GOTO 2001
IF(PROP(2).EQ.1)GOTO 2003
2001 CALL SPEAK(16)
IDARK=1


2003 I=IOBJ(J)
2004 IF(I.EQ.0) GOTO 2011
IF(((I.EQ.6).OR.(I.EQ.9)).AND.(IPLACE(10).EQ.-1))GOTO 2008
ILK=I
IF(PROP(I).NE.0) ILK=I+100
KK=BTEXT(ILK)
IF(KK.EQ.0) GOTO 2008
2005 TYPE 2006,(LLINE(KK,JJ),JJ=3,LLINE(KK,2))
2006 FORMAT(20A5)
KK=KK+1
IF(LLINE(KK-1,1).NE.0) GOTO 2005
TYPE 2007
2007 FORMAT(/)
2008 I=ICHAIN(I)
GOTO 2004

 

C K=1 MEANS ANY INPUT


2012 A=B
JTWO=0
GOTO 2021

2010 JSPK=QUIP(K)
GOTO 5200

2009 JSPK=54
5200 CALL SPEAK(JSPK)

2011 JVERB=0
JOBJ=0
JTWO=0

2020 CALL GETIN(JTWO,A,TWOWD,B)
K=70
IF(A.EQ.‘ENTER’.AND.(B.EQ.‘STREAM’.OR.B.EQ.‘WATER’))GOTO 2010
IF(A.EQ.‘ENTER’.AND.JTWO.NE.0)GOTO 2012
2021 IF(A.NE.‘WEST’)GOTO 2023
IWEST=IWEST+1
IF(IWEST.NE.10)GOTO 2023
CALL SPEAK(17)
2023 DO 2024 I=1,1000
IF(KTAB(I).EQ.-1)GOTO 3000
IF(ATAB(I).EQ.A)GOTO 2025
2024 CONTINUE
PAUSE ‘ERROR 6’
2025 K=MOD(KTAB(I),1000)
KQ=KTAB(I)/1000+1
GOTO (5014,5000,2026,2010)KQ
PAUSE ‘NO NO’
2026 JVERB=K
JSPK=JSPKT(JVERB)
IF(JTWO.NE.0)GOTO 2028
IF(JOBJ.EQ.0)GOTO 2036
2027 GOTO(9000,5066,3000,5031,2009,5031,9404,9406,5081,5200,
1 5200,5300,5506,5502,5504,5505)JVERB
PAUSE ‘ERROR 5’


2028 A=TWOWD
B=’ ‘
JTWO=0
GOTO 2023

3000 JSPK=60
IF(RAN(QZ).GT.0.8)JSPK=61
IF(RAN(QZ).GT.0.8)JSPK=13
CALL SPEAK(JSPK)
LTRUBL=LTRUBL+1
IF(LTRUBL.NE.3)GOTO 2020
IF(J.NE.13.OR.IPLACE(7).NE.13.OR.IPLACE(5).NE.-1)GOTO 2032
CALL YES(18,19,54,YEA)
GOTO 2033
2032 IF(J.NE.19.OR.PROP(11).NE.0.OR.IPLACE(7).EQ.-1)GOTO 2034
CALL YES(20,21,54,YEA)
GOTO 2033
2034 IF(J.NE.8.OR.PROP(GRATE).NE.0)GOTO 2035
CALL YES(62,63,54,YEA)
2033 IF(YEA.EQ.0)GOTO 2011
GOTO 2020
2035 IF(IPLACE(5).NE.J.AND.IPLACE(5).NE.-1)GOTO 2020
IF(JOBJ.NE.5)GOTO 2020
CALL SPEAK(22)
GOTO 2020


2036 GOTO(2037,5062,5062,9403,2009,9403,9404,9406,5062,5062,
1 5200,5300,5062,5062,5062,5062)JVERB
PAUSE ‘OOPS’
2037 IF((IOBJ(J).EQ.0).OR.(ICHAIN(IOBJ(J)).NE.0)) GOTO 5062
DO 5312 I=1,3
IF(DSEEN(I).NE.0)GOTO 5062
5312 CONTINUE
JOBJ=IOBJ(J)
GOTO 2027
5062 IF(B.NE.’ ‘)GOTO 5333
TYPE 5063,A
5063 FORMAT(’  ‘,A5,’ WHAT?’,/)
GOTO 2020

5333 TYPE 5334,A,B
5334 FORMAT(’ ‘,2A5,’ WHAT?’,/)
GOTO 2020
5014 IF(IDARK.EQ.0) GOTO 8

IF(RAN(QZ).GT.0.25) GOTO 8
5017 CALL SPEAK(23)
PAUSE ‘GAME IS OVER’
GOTO 2011

 

5000 JOBJ=K
IF(JTWO.NE.0)GOTO 2028
IF((J.EQ.IPLACE(K)).OR.(IPLACE(K).EQ.-1)) GOTO 5004
IF(K.NE.GRATE)GOTO 502
IF((J.EQ.1).OR.(J.EQ.4).OR.(J.EQ.7))GOTO 5098
IF((J.GT.9).AND.(J.LT.15))GOTO 5097
502 IF(B.NE.’ ‘)GOTO 5316
TYPE 5005,A
5005 FORMAT(’ I SEE NO ‘,A5,’ HERE.’,/)
GOTO 2011
5316 TYPE 5317,A,B
5317 FORMAT(’ I SEE NO ‘,2A5,’ HERE.’/)
GOTO 2011
5098 K=49
GOTO 5014
5097 K=50
GOTO 5014
5004 JOBJ=K
IF(JVERB.NE.0)GOTO 2027


5064 IF(B.NE.’ ‘)GOTO 5314
TYPE 5001,A
5001 FORMAT(’ WHAT DO YOU WANT TO DO WITH THE ‘,A5,’?’,/)
GOTO 2020
5314 TYPE 5315,A,B
5315 FORMAT(’ WHAT DO YOU WANT TO DO WITH THE ‘,2A5,’?’,/)
GOTO 2020

C CARRY

9000 IF(JOBJ.EQ.18)GOTO 2009
IF(IPLACE(JOBJ).NE.J) GOTO 5200
9001 IF(IFIXED(JOBJ).EQ.0)GOTO 9002
CALL SPEAK(25)
GOTO 2011
9002 IF(JOBJ.NE.BIRD)GOTO 9004
IF(IPLACE(ROD).NE.-1)GOTO 9003
CALL SPEAK(26)
GOTO 2011
9003 IF((IPLACE(4).EQ.-1).OR.(IPLACE(4).EQ.J)) GOTO 9004
CALL SPEAK(27)
GOTO 2011
9004 IPLACE(JOBJ)=-1
9005 IF(IOBJ(J).NE.JOBJ) GOTO 9006
IOBJ(J)=ICHAIN(JOBJ)
GOTO 2009
9006 ITEMP=IOBJ(J)
9007 IF(ICHAIN(ITEMP).EQ.(JOBJ)) GOTO 9008
ITEMP=ICHAIN(ITEMP)
GOTO 9007
9008 ICHAIN(ITEMP)=ICHAIN(JOBJ)
GOTO 2009


C LOCK, UNLOCK, NO OBJECT YET

9403 IF((J.EQ.8).OR.(J.EQ.9))GOTO 5105
5032 CALL SPEAK(28)
GOTO 2011
5105 JOBJ=GRATE
GOTO 2027

C DISCARD OBJECT

5066 IF(JOBJ.EQ.18)GOTO 2009
IF(IPLACE(JOBJ).NE.-1) GOTO 5200
5012 IF((JOBJ.NE.BIRD).OR.(J.NE.19).OR.(PROP(11).EQ.1))GOTO 9401
CALL SPEAK(30)
PROP(11)=1
5160 ICHAIN(JOBJ)=IOBJ(J)
IOBJ(J)=JOBJ
IPLACE(JOBJ)=J
GOTO 2011

9401 CALL SPEAK(54)
GOTO 5160

C LOCK,UNLOCK OBJECT

5031 IF(IPLACE(KEYS).NE.-1.AND.IPLACE(KEYS).NE.J)GOTO 5200
IF(JOBJ.NE.4)GOTO 5102
CALL SPEAK(32)
GOTO 2011
5102 IF(JOBJ.NE.KEYS)GOTO 5104
CALL SPEAK(55)
GOTO 2011
5104 IF(JOBJ.EQ.GRATE)GOTO 5107
CALL SPEAK(33)
GOTO 2011
5107 IF(JVERB.EQ.4) GOTO 5033
IF(PROP(GRATE).NE.0)GOTO 5034
CALL SPEAK(34)
GOTO 2011
5034 CALL SPEAK(35)
PROP(GRATE)=0
PROP(8)=0
GOTO 2011
5033 IF(PROP(GRATE).EQ.0)GOTO 5109
CALL SPEAK(36)
GOTO 2011
5109 CALL SPEAK(37)
PROP(GRATE)=1
PROP(8)=1
GOTO 2011

 

C LIGHT LAMP

9404 IF((IPLACE(2).NE.J).AND.(IPLACE(2).NE.-1))GOTO 5200
PROP(2)=1
IDARK=0
CALL SPEAK(39)
GOTO 2011

C LAMP OFF

9406 IF((IPLACE(2).NE.J).AND.(IPLACE(2).NE.-1)) GOTO 5200
PROP(2)=0
CALL SPEAK(40)
GOTO 2011

C STRIKE

5081 IF(JOBJ.NE.12)GOTO 5200
PROP(12)=1
GOTO 2003

C ATTACK

5300 DO 5313 ID=1,3
IID=ID
IF(DSEEN(ID).NE.0)GOTO 5307
5313 CONTINUE
IF(JOBJ.EQ.0)GOTO 5062
IF(JOBJ.EQ.SNAKE) GOTO 5200
IF(JOBJ.EQ.BIRD) GOTO 5302
CALL SPEAK(44)
GOTO 2011
5302 CALL SPEAK(45)
IPLACE(JOBJ)=300
GOTO 9005

5307 IF(RAN(QZ).GT.0.4) GOTO 5309
DSEEN(IID)=0
ODLOC(IID)=0
DLOC(IID)=0
CALL SPEAK(47)
GOTO 5311
5309 CALL SPEAK(48)
5311 K=21
GOTO 5014

C EAT

5502 IF((IPLACE(FOOD).NE.J.AND.IPLACE(FOOD).NE.-1).OR.PROP(FOOD).NE.0
1 .OR.JOBJ.NE.FOOD)GOTO 5200
PROP(FOOD)=1
5501 JSPK=72
GOTO 5200

C DRINK

5504 IF((IPLACE(WATER).NE.J.AND.IPLACE(WATER).NE.-1)
1 .OR.PROP(WATER).NE.0.OR.JOBJ.NE.WATER) GOTO 5200
PROP(WATER)=1
JSPK=74
GOTO 5200

C RUB

5505 IF(JOBJ.NE.LAMP)JSPK=76
GOTO 5200

C POUR

5506 IF(JOBJ.NE.WATER)JSPK=78
PROP(WATER)=1
GOTO 5200

 

END


SUBROUTINE SPEAK(IT)
IMPLICIT INTEGER(A-Z)
COMMON RTEXT,LLINE
DIMENSION RTEXT(100),LLINE(1000,22)

KKT=RTEXT(IT)
IF(KKT.EQ.0)RETURN
999 TYPE 998, (LLINE(KKT,JJT),JJT=3,LLINE(KKT,2))
998 FORMAT(20A5)
KKT=KKT+1
IF(LLINE(KKT-1,1).NE.0)GOTO 999
997 TYPE 996
996 FORMAT(/)
RETURN
END


SUBROUTINE GETIN(TWOW,B,C,D)
IMPLICIT INTEGER(A-Z)
DIMENSION A(5),M2(6)
DATA M2/“4000000000,“20000000,“100000,“400,“2,0/
6 ACCEPT 1,(A(I), I=1,4)
1 FORMAT(4A5)
TWOW=0
S=0
B=A(1)
DO 2 J=1,4
DO 2 K=1,5
MASK1=“774000000000
IF(K.NE.1) MASK1=“177*M2(K)
IF(((A(J).XOR.“201004020100).AND.MASK1).EQ.0)GOTO 3
IF(S.EQ.0) GOTO 2
TWOW=1
CALL SHIFT(A(J),7*(K-1),XX)
CALL SHIFT(A(J+1),7*(I-6),YY)
MASK=-M2(6-K)
C=(XX.AND.MASK)+(YY.AND.(-2-MASK))
GOTO 4
3 IF(S.EQ.1) GOTO 2
S=1
IF(J.EQ.1) B=(B.AND.-M2(K)).OR.(“201004020100.AND.
1 (-M2(K).XOR.-1))
2 CONTINUE
4 D=A(2)
RETURN
END

SUBROUTINE YES(X,Y,Z,YEA)
IMPLICIT INTEGER(A-Z)
CALL SPEAK(X)
CALL GETIN(JUNK,IA1,JUNK,IB1)
IF(IA1.EQ.‘NO’.OR.IA1.EQ.‘N’) GOTO 1
YEA=1
IF(Y.NE.0) CALL SPEAK(Y)
RETURN
1 YEA=0
IF(Z.NE.0)CALL SPEAK(Z)
RETURN
END

 


Original fortran code for Adventure - part 3

Posted in Text-based gaming on 01 - February 2008 at 02:55 PM (16 years ago) 201 views.

Cross posting this to reduce possibility of link rot and preserve important part of our heritage:

Source: http://jerz.setonhill.edu/if/crowther/
Original news story: http://www.gamedev.net/community/forums/topic.asp?topic_id=460192

If you are the owner of this code, and would like me to remove it, please let me know. kthxbai.

1
1 YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK
1 BUILDING . AROUND YOU IS A FOREST. A SMALL
1 STREAM FLOWS OUT OF THE BUILDING AND DOWN A GULLY.
2 YOU HAVE WALKED UP A HILL, STILL IN THE FOREST
2 THE ROAD NOW SLOPES BACK DOWN THE OTHER SIDE OF THE HILL.
2 THERE IS A BUILDING IN THE DISTANCE.
3 YOU ARE INSIDE A BUILDING, A WELL HOUSE FOR A LARGE SPRING.
4 YOU ARE IN A VALLEY IN THE FOREST BESIDE A STREAM TUMBLING
4 ALONG A ROCKY BED.
5 YOU ARE IN OPEN FOREST, WITH A DEEP VALLEY TO ONE SIDE.
6 YOU ARE IN OPEN FOREST NEAR BOTH A VALLEY AND A ROAD.
7 AT YOUR FEET ALL THE WATER OF THE STREAM SPLASHES INTO A
7 2 INCH SLIT IN THE ROCK. DOWNSTREAM THE STREAMBED IS BARE ROCK.
8 YOU ARE IN A 20 FOOT DEPRESSION FLOORED WITH BARE DIRT. SET INTO
8 THE DIRT IS A STRONG STEEL GRATE MOUNTED IN CONCRETE. A DRY
8 STREAMBED LEADS INTO THE DEPRESSION.
9 YOU ARE IN A SMALL CHAMBER BENEATH A 3X3 STEEL GRATE TO THE
9 SURFACE. A LOW CRAWL OVER COBBLES LEADS INWARD TO THE WEST.
10 YOU ARE CRAWLING OVER COBBLES IN A LOW PASSAGE. THERE IS A
10 DIM LIGHT AT THE EAST END OF THE PASSAGE.
11 YOU ARE IN A DEBRIS ROOM, FILLED WITH STUFF WASHED IN FROM
11 THE SURFACE. A LOW WIDE PASSAGE WITH COBBLES BECOMES
11 PLUGGED WITH MUD AND DEBRIS HERE,BUT AN AWKWARD CANYON
11 LEADS UPWARD AND WEST.
11 A NOTE ON THE WALL SAYS ‘MAGIC WORD XYZZY’.
12 YOU ARE IN AN AWKWARD SLOPING EAST/WEST CANYON.
13 YOU ARE IN A SPLENDID CHAMBER THIRTY FEET HIGH. THE WALLS
13 ARE FROZEN RIVERS OF ORANGE STONE. AN AWKWARD CANYON AND A
13 GOOD PASSAGE EXIT FROM EAST AND WEST SIDES OF THE CHAMBER.
14 AT YOUR FEET IS A SMALL PIT BREATHING TRACES OF WHITE MIST. AN
14 EAST PASSAGE ENDS HERE EXCEPT FOR A SMALL CRACK LEADING ON.
15 YOU ARE AT ONE END OF A VAST HALL STRETCHING FORWARD OUT OF
15 SIGHT TO THE WEST. THERE ARE OPENINGS TO EITHER SIDE. NEARBY, A WIDE
15 STONE STAIRCASE LEADS DOWNWARD. THE HALL IS FILLED WITH
15 WISPS OF WHITE MIST SWAYING TO AND FRO ALMOST AS IF ALIVE.
15 A COLD WIND BLOWS UP THE STAIRCASE. THERE IS A PASSAGE
15 AT THE TOP OF A DOME BEHIND YOU.
16 THE CRACK IS FAR TOO SMALL FOR YOU TO FOLLOW.
17 YOU ARE ON THE EAST BANK OF A FISSURE SLICING CLEAR ACROSS
17 THE HALL. THE MIST IS QUITE THICK HERE, AND THE FISSURE IS
17 TOO WIDE TO JUMP.
18 THIS IS A LOW ROOM WITH A CRUDE NOTE ON THE WALL.
18 IT SAYS ‘YOU WON’T GET IT UP THE STEPS’.
19 YOU ARE IN THE HALL OF THE MOUNTAIN KING, WITH PASSAGES
19 OFF IN ALL DIRECTIONS.
20 YOU ARE AT THE BOTTOM OF THE PIT WITH A BROKEN NECK.
21 YOU DIDN’T MAKE IT
22 THE DOME IS UNCLIMBABLE
23 YOU CAN’T GO IN THROUGH A LOCKED STEEL GRATE!
24 YOU DON’T FIT DOWN A TWO INCH HOLE!
25 YOU CAN’T GO THROUGH A LOCKED STEEL GRATE.
27 YOU ARE ON THE WEST SIDE OF THE FISSURE IN THE HALL OF MISTS.
28 YOU ARE IN A LOW N/S PASSAGE AT A HOLE IN THE FLOOR.
28 THE HOLE GOES DOWN TO AN E/W PASSAGE.
29 YOU ARE IN THE SOUTH SIDE CHAMBER.
30 YOU ARE IN THE WEST SIDE CHAMBER OF HALL OF MT KING.
30 A PASSAGE CONTINUES WEST AND UP HERE.

31 THERE IS NO WAY ACROSS THE FISSURE.
32 YOU CAN’T GET BY THE SNAKE
33 YOU ARE IN A LARGE ROOM, WITH A PASSAGE TO THE SOUTH,
33 A PASSAGE TO THE WEST, AND A WALL OF BROKEN ROCK TO
33 THE EAST. THERE IS A LARGE ‘Y2’ ON A ROCK IN ROOMS CENTER.
34 YOU ARE IN A JUMBLE OF ROCK, WITH CRACKS EVERYWHERE.
35 YOU ARE AT A WINDOW ON A HUGE PIT, WHICH GOES UP AND
35 DOWN OUT OF SIGHT. A FLOOR IS INDISTINCTLY VISIBLE
35 OVER 50 FEET BELOW. DIRECTLY OPPOSITE YOU AND 25 FEET AWAY
35 THERE IS A SIMILAR WINDOW.
36 YOU ARE IN A DIRTY BROKEN PASSAGE. TO THE EAST IS A CRAWL.
36 TO THE WEST IS A LARGE PASSAGE. ABOVE YOU IS A HOLE TO
36 ANOTHER PASSAGE.
37 YOU ARE ON THE BRINK OF A SMALL CLEAN CLIMBABLE PIT.
37 A CRAWL LEADS WEST.
38 YOU ARE IN THE BOTTOM OF A SMALL PIT WITH A LITTLE
38 STREAM, WHICH ENTERS AND EXITS THROUGH TINY SLITS.
39 YOU ARE IN A LARGE ROOM FULL OF DUSTY ROCKS. THERE IS A
39 BIG HOLE IN THE FLOOR. THERE ARE CRACKS EVERYWHERE, AND
39 A PASSAGE LEADING EAST.
40 YOU HAVE CRAWLED THROUGH A VERY LOW WIDE PASSAGE PARALLEL
40 TO AND NORTH OF THE HALL OF MISTS.
41 YOU ARE AT THE WEST END OF HALL OF MISTS. A LOW WIDE CRAWL
41 CONTINUES WEST AND ANOTHER GOES NORTH. TO THE SOUTH IS A
41 LITTLE PASSAGE 6 FEET OFF THE FLOOR.
42 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
43 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
44 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
45 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
46 DEAD END
47 DEAD END
48 DEAD END
49 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
50 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
51 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
52 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
53 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
54 DEAD END
55 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
56 DEAD END
57 YOU ARE ON THE BRINK OF A THIRTY FOOT PIT WITH A MASSIVE
57 ORANGE COLUMN DOWN ONE WALL. YOU COULD CLIMB DOWN HERE
57 BUT YOU COULD NOT GET BACK UP. THE MAZE CONTINUES AT THIS
57 LEVEL.
58 DEAD END
59 YOU HAVE CRAWLED THROUGH A VERY LOW WIDE PASSAGE PARALLEL
59 TO AND NORTH OF THE HALL OF MISTS.
60 YOU ARE AT THE EAST END OF A VERY LONG HALL APPARENTLY
60 WITHOUT SIDE CHAMBERS. TO THE EAST A LOW WIDE CRAWL SLANTS
60 UP. TO THE NORTH A ROUND TWO FOOT HOLE SLANTS DOWN.
61 YOU ARE AT THE WEST END OF A VERY LONG FEATURELESS HALL.
62 YOU ARE AT A CROSSOVER OF A HIGH N/S PASSAGE AND A LOW E/W ONE.
63 DEAD END
64 YOU ARE AT A COMPLEX JUNCTION. A LOW HANDS AND KNEES
64 PASSAGE FROM THE NORTH JOINS A HIGHER CRAWL
64 FROM THE EAST TO MAKE A WALKING PASSAGE GOING WEST
64 THERE IS ALSO A LARGE ROOM ABOVE. THE AIR IS DAMP HERE.
64 A SIGN IN MIDAIR HERE SAYS ‘CAVE UNDER CONSTRUCTION BEYOND
64 THIS POINT. PROCEED AT OWN RISK.’
65 YOU ARE IN BEDQUILT, A LONG EAST/WEST PASSAGE WITH HOLES EVERYWHERE.
65 TO EXPLORE AT RANDOM SELECT NORTH, SOUTH, UP, OR DOWN.
66 YOU ARE IN A ROOM WHOSE WALLS RESEMBLE SWISS CHEESE.
66 OBVIOUS PASSAGES GO WEST,EAST,NE, AND
66 NW. PART OF THE ROOM IS OCCUPIED BY A LARGE BEDROCK BLOCK.
67 YOU ARE IN THE TWOPIT ROOM. THE FLOOR
67 HERE IS LITTERED WITH THIN ROCK SLABS, WHICH MAKE IT
67 EASY TO DESCEND THE PITS. THERE IS A PATH HERE BYPASSING
67 THE PITS TO CONNECT PASSAGES FROM EAST AND WEST.THERE
67 ARE HOLES ALL OVER, BUT THE ONLY BIG ONE IS ON THE WALL
67 DIRECTLY OVER THE EAST PIT WHERE YOU CAN’T GET TO IT.
68 YOU ARE IN A LARGE LOW CIRCULAR CHAMBER WHOSE FLOOR IS AN
68 IMMENSE SLAB FALLEN FROM THE CEILING(SLAB ROOM). EAST AND
68 WEST THERE ONCE WERE LARGE PASSAGES, BUT THEY ARE NOW FILLED
68 WITH BOULDERS. LOW SMALL PASSAGES GO NORTH AND SOUTH, AND THE
68 SOUTH ONE QUICKLY BENDS WEST AROUND THE BOULDERS.
69 YOU ARE IN A SECRET NS CANYON ABOVE A LARGE ROOM.
70 YOU ARE IN A SECRET N/S CANYON ABOVE A SIZABLE PASSAGE.
71 YOU ARE IN SECRET CANYON AT A JUNCTION OF THREE CANYONS,
71 BEARING NORTH, SOUTH, AND SE. THE NORTH ONE IS AS TALL
71 AS THE OTHER TWO COMBINED.
72 YOU ARE IN A LARGE LOW ROOM. CRAWLS LEAD N, SE, AND SW.
73 DEAD END CRAWL.
74 YOU ARE IN SECRET CANYON WHICH HERE RUNS E/W. IT CROSSES OVER
74 A VERY TIGHT CANYON 15 FEET BELOW. IF YOU GO DOWN YOU MAY
74 NOT BE ABLE TO GET BACK UP
75 YOU ARE AT A WIDE PLACE IN A VERY TIGHT N/S CANYON.
76 THE CANYON HERE BECOMES TO TIGHT TO GO FURTHER SOUTH.
77 YOU ARE IN A TALL E/W CANYON. A LOW TIGHT CRAWL GOES 3 FEET
77 NORTH AND SEEMS TO OPEN UP.
78 THE CANYON RUNS INTO A MASS OF BOULDERS - DEAD END.
79 THE STREAM FLOWS OUT THROUGH A PAIR OF 1 FOOT DIAMETER SEWER
79 PIPES. IT WOULD BE ADVISABLE TO USE THE DOOR.
-1 END
2
1 YOU’RE AT END OF ROAD AGAIN.
2 YOU’RE AT HILL IN ROAD.
3 YOU’RE INSIDE BUILDING.
4 YOU’RE IN VALLEY
5 YOU’RE IN FOREST
6 YOU’RE IN FOREST
7 YOU’RE AT SLIT IN STREAMBED
8 YOU’RE OUTSIDE GRATE
9 YOU’RE BELOW THE GRATE
10 YOU’RE IN COBBLE CRAWL
11 YOU’RE IN DEBRIS ROOM.
13 YOU’RE IN BIRD CHAMBER.
14 YOU’RE AT TOP OF SMALL PIT.
15 YOU’RE IN HALL OF MISTS.
17 YOU’RE ON EAST BANK OF FISSURE.
18 YOU’RE IN NUGGET OF GOLD ROOM.
19 YOU’RE IN HALL OF MT KING.
33 YOU’RE AT Y2
35 YOU’RE AT WINDOW ON PIT
36 YOU’RE IN DIRTY PASSAGE
39 YOU’RE N DUSTY ROCK ROOM.
41 YOU’RE AT WEST END OF HALL OF MISTS.
57 YOU’RE AT BRINK OF PIT.
60 YOU’RE AT EAST END OF LONG HALL.
66 YOU’RE IN SWISS CHEESE ROOM
67 YOU’RE IN TWOPIT ROOM
68 YOU’RE IN SLAB ROOM
-1
3
1 2 2 44
1 3 3 12 19 43
1 4 4 5 13 14 46 30
1 5 6 45 43
1 8 49
2 1 8 2 12 7 43 45 30
2 5 6 45 46
3 1 3 11 32 44
3 11 48
3 33 65
3 79 5 14
4 1 4 45
4 5 6 43 44 29
4 7 5 46 30
4 8 49
5 4 9 43 30
5 300 6 7 8 45
5 5 44 46
6 1 2 45
6 4 9 43 44 30
6 5 6 46
7 1 12
7 4 4 45
7 5 6 43 44
7 8 5 15 16 46 30
7 24 47 14 30
8 5 6 43 44 46
8 1 12
8 7 4 13 45
8 301 3 5 19 30
9 302 11 12
9 10 17 18 19 44
9 14 31
9 11 51
10 9 11 20 21 43
10 11 19 22 44 51
10 14 31
11 310 49
11 10 17 18 23 24 43
11 12 25 305 19 29 44
11 3 48
11 14 31
12 310 49
12 11 30 43 51
12 13 19 29 44
12 14 31
13 310 49
13 11 51
13 12 25 305 43
13 14 23 31 44
14 310 49
14 11 51
14 13 23 43
14 303 30 31 34
14 16 33 44
15 18 36 46
15 17 7 38 44
15 19 10 30 45
15 304 29 31 34 35 23 43
15 34 55
15 62 69
16 14 1
17 15 8 38 43
17 305 7
17 306 40 41 42 44 19 39
18 15 38 11 8 45
19 15 10 29 43
19 307 45 36
19 308 46 37
19 309 44 7
19 74 66
20 26 1
21 26 1
22 15 1
23 8 1
24 7 1
25 9 1
27 17 8 11 38
27 40 45
27 41 44
28 19 38 11 46
28 33 45
28 36 30 52
29 19 38 11 45
30 19 38 11 43
30 62 44 29
31 17 1
32 19 1
33 3 65
33 28 46
33 34 43 53 54
33 35 44
34 33 30
34 15 29
35 33 43 55
36 37 43 17
36 28 29 52
36 39 44
37 36 44 17
37 38 30 31 56
38 37 56 29
39 36 43
39 64 30 52 58
39 65 70
40 41 1
41 42 46 29 23 56
41 27 43
41 59 45
41 60 44 17
42 41 44
42 43 43
42 44 46
43 42 44
43 44 46
43 45 43
44 42 45
44 43 43
44 48 30
44 50 46
45 43 45
45 46 43
45 47 46
46 45 44 11
47 45 45 11
48 44 29 11
49 50 30 43
49 51 44
50 44 43
50 49 44 29
50 52 46
51 49 44
51 52 43
51 53 46
52 50 45
52 51 44
52 53 29
52 55 43
53 51 44
53 52 45
53 54 46
54 53 43 11
55 52 44
55 56 30
55 57 43
56 55 29 11
57 55 44
57 58 46
57 13 30 56
58 57 44 11
59 27 1
60 41 43 29
60 61 44
60 62 45 30
61 60 43 11
62 60 44
62 63 45
62 30 43
62 15 46
63 62 46 11
64 39 29 56 59
64 65 44
65 64 43
65 66 44
65 68 61
65 311 46
65 312 29
66 313 45
66 65 60
66 67 44
66 77 25
66 314 46
67 66 43
67 72 60
68 66 46
68 69 29
69 68 30
69 74 46
70 71 45
71 39 29
71 65 62
71 70 46
72 67 63
72 73 45
73 72 46
74 19 43
74 69 44
74 75 30
75 76 46
75 77 45
76 75 45
77 75 43
77 78 44
77 66 45
78 77 46
79 3 1
-1
4
2 ROAD
3 ENTER
3 DOOR
3 GATE
4 UPSTR
5 DOWNS
6 FORES
7 FORWA
7 CONTI
7 ONWAR
8 BACK
8 RETUR
8 RETRE
9 VALLE
10 STAIR
11 OUT
11 OUTSI
11 EXIT
11 LEAVE
12 BUILD
12 BLD
12 HOUSE
13 GULLY
14 STREA
15 ROCK
16 BED
17 CRAWL
18 COBBL
19 INWAR
19 INSID
19 IN
20 SURFA
21 NULL
21 NOWHE
22 DARK
23 PASSA
24 LOW
25 CANYO
26 AWKWA
29 UPWAR
29 UP
29 U
29 ABOVE
30 D
30 DOWNW
30 DOWN
31 PIT
32 OUTDO
33 CRACK
34 STEPS
35 DOME
36 LEFT
37 RIGHT
38 HALL
39 JUMP
40 MAGIC
41 OVER
42 ACROS
43 EAST
43 E
44 WEST
44 W
45 NORTH
45 N
46 SOUTH
46 S
47 SLIT
48 XYZZY
49 DEPRE
50 ENTRA
51 DEBRI
52 HOLE
53 WALL
54 BROKE
55 Y2
56 CLIMB
57 LOOK
57 EXAMI
57 TOUCH
57 LOOKA
58 FLOOR
59 ROOM
60 NE
61 SLAB
61 SLABR
62 SE
63 SW
64 NW
65 PLUGH
66 SECRE
67 CAVE
68 TURN
69 CROSS
70 BEDQU
1001 KEYS
1001 KEY
1002 LAMP
1002 HEADL
1003 GRATE
1004 CAGE
1005 ROD
1006 STEPS
1007 BIRD
1010 NUGGE
1010 GOLD
1011 SNAKE
1012 FISSU
1013 DIAMO
1014 SILVE
1014 BARS
1015 JEWEL
1016 COINS
1017 DWARV
1017 DWARF
1018 KNIFE
1018 KNIVE
1018 ROCK
1018 WEAPO
1018 BOULD
1019 FOOD
1019 RATIO
1020 WATER
1020 BOTTL
1021 AXE
1022 KNIFE
1023 CHEST
1023 BOX
1023 TREAS
2001 TAKE
2001 CARRY
2001 KEEP
2001 PICKU
2001 PICK
2001 WEAR
2001 CATCH
2001 STEAL
2001 CAPTU
2001 FIND
2001 WHERE
2001 GET
2002 RELEA
2002 FREE
2002 DISCA
2002 DROP
2002 DUMP
2003 DUMMY
2004 UNLOC
2004 OPEN
2004 LIFT
2005 NOTHI
2005 HOLD
2006 LOCK
2006 CLOSE
2007 LIGHT
2007 ON
2008 EXTIN
2008 OFF
2009 STRIK
2010 CALM
2010 WAVE
2010 SHAKE
2010 SING
2010 CLEAV
2011 WALK
2011 RUN
2011 TRAVE
2011 GO
2011 PROCE
2011 CONTI
2011 EXPLO
2011 GOTO
2011 FOLLO
2012 ATTAC
2012 KILL
2012 STAB
2012 FIGHT
2012 HIT
2013 POUR
2014 EAT
2015 DRINK
2016 RUB
3050 OPENS
3051 HELP
3051 ?
3051 WHAT
3064 TREE
3066 DIG
3066 EXCIV
3067 BLAST
3068 LOST
3069 MIST
3049 THROW
3079 FUCK
-1
5
201 THERE ARE SOME KEYS ON THE GROUND HERE.
202 THERE IS A SHINY BRASS LAMP NEARBY.
3 THE GRATE IS LOCKED
103 THE GRATE IS OPEN.
204 THERE IS A SMALL WICKER CAGE DISCARDED NEARBY.
205 A THREE FOOT BLACK ROD WITH A RUSTY STAR ON AN END LIES NEARBY
206 ROUGH STONE STEPS LEAD DOWN THE PIT.
7 A CHEERFUL LITTLE BIRD IS SITTING HERE SINGING.
107 THERE IS A LITTLE BIRD IN THE CAGE.
8 THE GRATE IS LOCKED
108 THE GRATE IS OPEN.
209 ROUGH STONE STEPS LEAD UP THE DOME.
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!
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
-1
6
1 SOMEWHERE NEARBY IS COLOSSAL CAVE, WHERE OTHERS HAVE FOUND
1 FORTUNES IN TREASURE AND GOLD, THOUGH IT IS RUMORED
1 THAT SOME WHO ENTER ARE NEVER SEEN AGAIN. MAGIC IS SAID
1 TO WORK IN THE CAVE.  I WILL BE YOUR EYES AND HANDS. DIRECT
1 ME WITH COMMANDS OF 1 OR 2 WORDS.
1 (ERRORS, SUGGESTIONS, COMPLAINTS TO CROWTHER)
1 (IF STUCK TYPE HELP FOR SOME HINTS)
2 A LITTLE DWARF WITH A BIG KNIFE BLOCKS YOUR WAY.
3 A LITTLE DWARF JUST WALKED AROUND A CORNER,SAW YOU, THREW
3 A LITTLE AXE AT YOU WHICH MISSED, CURSED, AND RAN AWAY.
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!
8 A HOLLOW VOICE SAYS ‘PLUGH’
9 THERE IS NO WAY TO GO THAT DIRECTION.
10 I AM UNSURE HOW YOU ARE FACING. USE COMPASS POINTS OR
10 NEARBY OBJECTS.
11 I DON’T KNOW IN FROM OUT HERE. USE COMPASS POINTS OR NAME
11 SOMETHING IN THE GENERAL DIRECTION YOU WANT TO GO.
12 I DON’T KNOW HOW TO APPLY THAT WORD HERE.
13 I DON’T UNDERSTAND THAT!
14 I ALWAYS UNDERSTAND COMPASS DIRECTIONS, OR YOU CAN NAME
14 A NEARBY THING TO HEAD THAT WAY.
15 SORRY, BUT I AM NOT ALLOWED TO GIVE MORE DETAIL. I WILL
15 REPEAT THE LONG DESCRIPTION OF YOUR LOCATION.
16 IT IS NOW PITCH BLACK. IF YOU PROCEED YOU WILL LIKELY
16 FALL INTO A PIT.
17 IF YOU PREFER, SIMPLY TYPE W RATHER THAN WEST.
18 ARE YOU TRYING TO CATCH THE BIRD?
19 THE BIRD IS FRIGHTENED RIGHT NOW AND YOU CANNOT CATCH IT
19 NO MATTER WHAT YOU TRY. PERHAPS YOU MIGHT TRY LATER.
20 ARE YOU TRYING TO ATTACK OR AVOID THE SNAKE?
21 YOU CAN’T KILL THE SNAKE, OR DRIVE IT AWAY, OR AVOID IT,
21 OR ANYTHING LIKE THAT. THERE IS A WAY TO GET BY, BUT YOU
21 DON’T HAVE THE NECESSARY RESOURCES RIGHT NOW.
22 MY WORD FOR HITTING SOMETHING WITH THE ROD IS ‘STRIKE’.
23 YOU FELL INTO A PIT AND BROKE EVERY BONE IN YOUR BODY!
24 YOU ARE ALREADY CARRYING IT!
25 YOU CAN’T BE SERIOUS!
26 THE BIRD WAS UNAFRAID WHEN YOU ENTERED, BUT AS YOU APPROACH
26 IT BECOMES DISTURBED AND YOU CANNOT CATCH IT.
27 YOU CAN CATCH THE BIRD, BUT YOU CANNOT CARRY IT.
28 THERE IS NOTHING HERE WITH A LOCK!
29 YOU AREN’T CARRYING IT!
30 THE LITTLE BIRD ATTACKS THE GREEN SNAKE, AND IN AN
30 ASTOUNDING FLURRY DRIVES THE SNAKE AWAY.
31 YOU HAVE NO KEYS!
32 IT HAS NO LOCK.
33 I DON’T KNOW HOW TO LOCK OR UNLOCK SUCH A THING.
34 THE GRATE WAS ALREADY LOCKED.
35 THE GRATE IS NOW LOCKED.
36 THE GRATE WAS ALREADY UNLOCKED.
37 THE GRATE IS NOW UNLOCKED.
38 YOU HAVE NO SOURCE OF LIGHT.
39 YOUR LAMP IS NOW ON.
40 YOUR LAMP IS NOW OFF.
41 STRIKE WHAT?
42 NOTHING HAPPENS.
43 WHERE?
44 THERE IS NOTHING HERE TO ATTACK.
45 THE LITTLE BIRD IS NOW DEAD. ITS BODY DISAPPEARS.
46 ATTACKING THE SNAKE BOTH DOESN’T WORK AND IS VERY DANGEROUS.
47 YOU KILLED A LITTLE DWARF.
48 YOU ATTACK A LITTLE DWARF, BUT HE DODGES OUT OF THE WAY.
49 I HAVE TROUBLE WITH THE WORD ‘THROW’ BECAUSE YOU CAN THROW
49 A THING OR THROW AT A THING. PLEASE USE DROP OR ATTACK INSTEAD.
50 GOOD TRY, BUT THAT IS AN OLD WORN-OUT MAGIC WORD.
51 I KNOW OF PLACES, ACTIONS, AND THINGS. MOST OF MY VOCABULARY
51 DESCRIBES PLACES AND IS USED TO MOVE YOU THERE. TO MOVE TRY
51 WORDS LIKE FOREST, BUILDING, DOWNSTREAM, ENTER, EAST, WEST
51 NORTH, SOUTH, UP, OR DOWN.  I KNOW ABOUT A FEW SPECIAL OBJECTS,
51 LIKE A BLACK ROD HIDDEN IN THE CAVE. THESE OBJECTS CAN BE
51 MANIPULATED USING ONE OF THE ACTION WORDS THAT I KNOW. USUALLY
51 YOU WILL NEED TO GIVE BOTH THE OBJECT AND ACTION WORDS
51 (IN EITHER ORDER), BUT SOMETIMES I CAN INFER THE OBJECT FROM
51 THE VERB ALONE. THE OBJECTS HAVE SIDE EFFECTS - FOR
51 INSTANCE, THE ROD SCARES THE BIRD.
51 USUALLY PEOPLE HAVING TROUBLE MOVING JUST NEED TO TRY A FEW
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 TO SPEED THE GAME YOU CAN SOMETIMES MOVE LONG DISTANCES
51 WITH A SINGLE WORD. FOR EXAMPLE, ‘BUILDING’ USUALLY GETS
51 YOU TO THE BUILDING FROM ANYWHERE ABOVE GROUND EXCEPT WHEN
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!
52 IT MISSES!
53 IT GETS YOU!
54 OK
55 YOU CAN’T UNLOCK THE KEYS.
56 YOU HAVE CRAWLED AROUND IN SOME LITTLE HOLES AND WOUND UP
56 BACK IN THE MAIN PASSAGE.
57 I DON’T KNOW WHERE THE CAVE IS, BUT HEREABOUTS NO STREAM
57 CAN RUN ON THE SURFACE FOR LONG. I WOULD TRY THE STREAM.
58 I NEED MORE DETAILED INSTRUCTIONS TO DO THAT.
59 I CAN ONLY TELL YOU WHAT YOU SEE AS YOU MOVE ABOUT
59 AND MANIPULATE THINGS. I CANNOT TELL YOU WHERE REMOTE THINGS
59 ARE.
60 I DON’T KNOW THAT WORD.
61 WHAT?
62 ARE YOU TRYING TO GET INTO THE CAVE?
63 THE GRATE IS VERY SOLID AND HAS A HARDENED STEEL LOCK. YOU
63 CANNOT ENTER WITHOUT A KEY, AND THERE ARE NO KEYS NEARBY.
63 I WOULD RECOMMEND LOOKING ELSEWHERE FOR THE KEYS.
64 THE TREES OF THE FOREST ARE LARGE HARDWOOD OAK AND MAPLE,
64 WITH AN OCCASIONAL GROVE OF PINE OR SPRUCE. THERE IS QUITE
64 A BIT OF UNDERGROWTH, LARGELY BIRCH AND ASH SAPLINGS PLUS
64 NONDESCRITPT BUSHES OF VARIOUS SORTS. THIS TIME OF YEAR
64 VISIBILITY IS QUITE RESTRICTED BY ALL THE LEAVES, BUT TRAVEL
64 IS QUITE EASY IF YOU DETOUR AROUND THE SPRUCE AND BERRY BUSHES.
65 WELCOME TO ADVENTURE!!  WOULD YOU LIKE INSTRUCTIONS?
66 DIGGING WITHOUT A SHOVEL IS QUITE IMPRACTICAL: EVEN WITH A
66 SHOVEL PROGRESS IS UNLIKELY.
67 BLASTING REQUIRES DYNAMITE.
68 I’M AS CONFUSED AS YOU ARE.
69 MIST IS A WHITE VAPOR, USUALLY WATER, SEEN FROM TIME TO TIME
69 IN CAVERNS. IT CAN BE FOUND ANYWHERE BUT IS FREQUENTLY A SIGN
69 OF A DEEP PIT LEADING DOWN TO WATER.
70 YOUR FEET ARE NOW WET.
71 THERE IS NOTHING HERE TO EAT.
72 EATEN!
73 THERE IS NO DRINKABLE WATER HERE.
74 THE BOTTLE OF WATER IS NOW EMPTY.
75 RUBBING THE ELECTRIC LAMP IS NOT PARTICULARLY REWARDING.
75 ANYWAY, NOTHING EXCITING HAPPENS.
76 PECULIAR.  NOTHING UNEXPECTED HAPPENS.
77 YOUR BOTTLE IS EMPTY AND THE GROUND IS WET.
78 YOU CAN’T POUR THAT.
79 WATCH IT!
80 WHICH WAY?
-1
0


Original fortran code for Adventure - part 2

Posted in Text-based gaming on 01 - February 2008 at 02:55 PM (16 years ago) 206 views.

Cross posting this to reduce possibility of link rot and preserve important part of our heritage:

Source: http://jerz.setonhill.edu/if/crowther/
Original news story: http://www.gamedev.net/community/forums/topic.asp?topic_id=460192

If you are the owner of this code, and would like me to remove it, please let me know. kthxbai.
1
1 YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK
1 BUILDING . AROUND YOU IS A FOREST. A SMALL
1 STREAM FLOWS OUT OF THE BUILDING AND DOWN A GULLY.
2 YOU HAVE WALKED UP A HILL, STILL IN THE FOREST
2 THE ROAD NOW SLOPES BACK DOWN THE OTHER SIDE OF THE HILL.
2 THERE IS A BUILDING IN THE DISTANCE.
3 YOU ARE INSIDE A BUILDING, A WELL HOUSE FOR A LARGE SPRING.
4 YOU ARE IN A VALLEY IN THE FOREST BESIDE A STREAM TUMBLING
4 ALONG A ROCKY BED.
5 YOU ARE IN OPEN FOREST, WITH A DEEP VALLEY TO ONE SIDE.
6 YOU ARE IN OPEN FOREST NEAR BOTH A VALLEY AND A ROAD.
7 AT YOUR FEET ALL THE WATER OF THE STREAM SPLASHES INTO A
7 2 INCH SLIT IN THE ROCK. DOWNSTREAM THE STREAMBED IS BARE ROCK.
8 YOU ARE IN A 20 FOOT DEPRESSION FLOORED WITH BARE DIRT. SET INTO
8 THE DIRT IS A STRONG STEEL GRATE MOUNTED IN CONCRETE. A DRY
8 STREAMBED LEADS INTO THE DEPRESSION.
9 YOU ARE IN A SMALL CHAMBER BENEATH A 3X3 STEEL GRATE TO THE
9 SURFACE. A LOW CRAWL OVER COBBLES LEADS INWARD TO THE WEST.
10 YOU ARE CRAWLING OVER COBBLES IN A LOW PASSAGE. THERE IS A
10 DIM LIGHT AT THE EAST END OF THE PASSAGE.
11 YOU ARE IN A DEBRIS ROOM, FILLED WITH STUFF WASHED IN FROM
11 THE SURFACE. A LOW WIDE PASSAGE WITH COBBLES BECOMES
11 PLUGGED WITH MUD AND DEBRIS HERE,BUT AN AWKWARD CANYON
11 LEADS UPWARD AND WEST.
11 A NOTE ON THE WALL SAYS ‘MAGIC WORD XYZZY’.
12 YOU ARE IN AN AWKWARD SLOPING EAST/WEST CANYON.
13 YOU ARE IN A SPLENDID CHAMBER THIRTY FEET HIGH. THE WALLS
13 ARE FROZEN RIVERS OF ORANGE STONE. AN AWKWARD CANYON AND A
13 GOOD PASSAGE EXIT FROM EAST AND WEST SIDES OF THE CHAMBER.
14 AT YOUR FEET IS A SMALL PIT BREATHING TRACES OF WHITE MIST. AN
14 EAST PASSAGE ENDS HERE EXCEPT FOR A SMALL CRACK LEADING ON.
15 YOU ARE AT ONE END OF A VAST HALL STRETCHING FORWARD OUT OF
15 SIGHT TO THE WEST. THERE ARE OPENINGS TO EITHER SIDE. NEARBY, A WIDE
15 STONE STAIRCASE LEADS DOWNWARD. THE HALL IS FILLED WITH
15 WISPS OF WHITE MIST SWAYING TO AND FRO ALMOST AS IF ALIVE.
15 A COLD WIND BLOWS UP THE STAIRCASE. THERE IS A PASSAGE
15 AT THE TOP OF A DOME BEHIND YOU.
16 THE CRACK IS FAR TOO SMALL FOR YOU TO FOLLOW.
17 YOU ARE ON THE EAST BANK OF A FISSURE SLICING CLEAR ACROSS
17 THE HALL. THE MIST IS QUITE THICK HERE, AND THE FISSURE IS
17 TOO WIDE TO JUMP.
18 THIS IS A LOW ROOM WITH A CRUDE NOTE ON THE WALL.
18 IT SAYS ‘YOU WON’T GET IT UP THE STEPS’.
19 YOU ARE IN THE HALL OF THE MOUNTAIN KING, WITH PASSAGES
19 OFF IN ALL DIRECTIONS.
20 YOU ARE AT THE BOTTOM OF THE PIT WITH A BROKEN NECK.
21 YOU DIDN’T MAKE IT
22 THE DOME IS UNCLIMBABLE
23 YOU CAN’T GO IN THROUGH A LOCKED STEEL GRATE!
24 YOU DON’T FIT DOWN A TWO INCH HOLE!
25 YOU CAN’T GO THROUGH A LOCKED STEEL GRATE.
27 YOU ARE ON THE WEST SIDE OF THE FISSURE IN THE HALL OF MISTS.
28 YOU ARE IN A LOW N/S PASSAGE AT A HOLE IN THE FLOOR.
28 THE HOLE GOES DOWN TO AN E/W PASSAGE.
29 YOU ARE IN THE SOUTH SIDE CHAMBER.
30 YOU ARE IN THE WEST SIDE CHAMBER OF HALL OF MT KING.
30 A PASSAGE CONTINUES WEST AND UP HERE.

31 THERE IS NO WAY ACROSS THE FISSURE.
32 YOU CAN’T GET BY THE SNAKE
33 YOU ARE IN A LARGE ROOM, WITH A PASSAGE TO THE SOUTH,
33 A PASSAGE TO THE WEST, AND A WALL OF BROKEN ROCK TO
33 THE EAST. THERE IS A LARGE ‘Y2’ ON A ROCK IN ROOMS CENTER.
34 YOU ARE IN A JUMBLE OF ROCK, WITH CRACKS EVERYWHERE.
35 YOU ARE AT A WINDOW ON A HUGE PIT, WHICH GOES UP AND
35 DOWN OUT OF SIGHT. A FLOOR IS INDISTINCTLY VISIBLE
35 OVER 50 FEET BELOW. DIRECTLY OPPOSITE YOU AND 25 FEET AWAY
35 THERE IS A SIMILAR WINDOW.
36 YOU ARE IN A DIRTY BROKEN PASSAGE. TO THE EAST IS A CRAWL.
36 TO THE WEST IS A LARGE PASSAGE. ABOVE YOU IS A HOLE TO
36 ANOTHER PASSAGE.
37 YOU ARE ON THE BRINK OF A SMALL CLEAN CLIMBABLE PIT.
37 A CRAWL LEADS WEST.
38 YOU ARE IN THE BOTTOM OF A SMALL PIT WITH A LITTLE
38 STREAM, WHICH ENTERS AND EXITS THROUGH TINY SLITS.
39 YOU ARE IN A LARGE ROOM FULL OF DUSTY ROCKS. THERE IS A
39 BIG HOLE IN THE FLOOR. THERE ARE CRACKS EVERYWHERE, AND
39 A PASSAGE LEADING EAST.
40 YOU HAVE CRAWLED THROUGH A VERY LOW WIDE PASSAGE PARALLEL
40 TO AND NORTH OF THE HALL OF MISTS.
41 YOU ARE AT THE WEST END OF HALL OF MISTS. A LOW WIDE CRAWL
41 CONTINUES WEST AND ANOTHER GOES NORTH. TO THE SOUTH IS A
41 LITTLE PASSAGE 6 FEET OFF THE FLOOR.
42 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
43 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
44 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
45 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
46 DEAD END
47 DEAD END
48 DEAD END
49 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
50 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
51 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
52 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
53 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
54 DEAD END
55 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
56 DEAD END
57 YOU ARE ON THE BRINK OF A THIRTY FOOT PIT WITH A MASSIVE
57 ORANGE COLUMN DOWN ONE WALL. YOU COULD CLIMB DOWN HERE
57 BUT YOU COULD NOT GET BACK UP. THE MAZE CONTINUES AT THIS
57 LEVEL.
58 DEAD END
59 YOU HAVE CRAWLED THROUGH A VERY LOW WIDE PASSAGE PARALLEL
59 TO AND NORTH OF THE HALL OF MISTS.
60 YOU ARE AT THE EAST END OF A VERY LONG HALL APPARENTLY
60 WITHOUT SIDE CHAMBERS. TO THE EAST A LOW WIDE CRAWL SLANTS
60 UP. TO THE NORTH A ROUND TWO FOOT HOLE SLANTS DOWN.
61 YOU ARE AT THE WEST END OF A VERY LONG FEATURELESS HALL.
62 YOU ARE AT A CROSSOVER OF A HIGH N/S PASSAGE AND A LOW E/W ONE.
63 DEAD END
64 YOU ARE AT A COMPLEX JUNCTION. A LOW HANDS AND KNEES
64 PASSAGE FROM THE NORTH JOINS A HIGHER CRAWL
64 FROM THE EAST TO MAKE A WALKING PASSAGE GOING WEST
64 THERE IS ALSO A LARGE ROOM ABOVE. THE AIR IS DAMP HERE.
64 A SIGN IN MIDAIR HERE SAYS ‘CAVE UNDER CONSTRUCTION BEYOND
64 THIS POINT. PROCEED AT OWN RISK.’
65 YOU ARE IN BEDQUILT, A LONG EAST/WEST PASSAGE WITH HOLES EVERYWHERE.
65 TO EXPLORE AT RANDOM SELECT NORTH, SOUTH, UP, OR DOWN.
66 YOU ARE IN A ROOM WHOSE WALLS RESEMBLE SWISS CHEESE.
66 OBVIOUS PASSAGES GO WEST,EAST,NE, AND
66 NW. PART OF THE ROOM IS OCCUPIED BY A LARGE BEDROCK BLOCK.
67 YOU ARE IN THE TWOPIT ROOM. THE FLOOR
67 HERE IS LITTERED WITH THIN ROCK SLABS, WHICH MAKE IT
67 EASY TO DESCEND THE PITS. THERE IS A PATH HERE BYPASSING
67 THE PITS TO CONNECT PASSAGES FROM EAST AND WEST.THERE
67 ARE HOLES ALL OVER, BUT THE ONLY BIG ONE IS ON THE WALL
67 DIRECTLY OVER THE EAST PIT WHERE YOU CAN’T GET TO IT.
68 YOU ARE IN A LARGE LOW CIRCULAR CHAMBER WHOSE FLOOR IS AN
68 IMMENSE SLAB FALLEN FROM THE CEILING(SLAB ROOM). EAST AND
68 WEST THERE ONCE WERE LARGE PASSAGES, BUT THEY ARE NOW FILLED
68 WITH BOULDERS. LOW SMALL PASSAGES GO NORTH AND SOUTH, AND THE
68 SOUTH ONE QUICKLY BENDS WEST AROUND THE BOULDERS.
69 YOU ARE IN A SECRET NS CANYON ABOVE A LARGE ROOM.
70 YOU ARE IN A SECRET N/S CANYON ABOVE A SIZABLE PASSAGE.
71 YOU ARE IN SECRET CANYON AT A JUNCTION OF THREE CANYONS,
71 BEARING NORTH, SOUTH, AND SE. THE NORTH ONE IS AS TALL
71 AS THE OTHER TWO COMBINED.
72 YOU ARE IN A LARGE LOW ROOM. CRAWLS LEAD N, SE, AND SW.
73 DEAD END CRAWL.
74 YOU ARE IN SECRET CANYON WHICH HERE RUNS E/W. IT CROSSES OVER
74 A VERY TIGHT CANYON 15 FEET BELOW. IF YOU GO DOWN YOU MAY
74 NOT BE ABLE TO GET BACK UP
75 YOU ARE AT A WIDE PLACE IN A VERY TIGHT N/S CANYON.
76 THE CANYON HERE BECOMES TO TIGHT TO GO FURTHER SOUTH.
77 YOU ARE IN A TALL E/W CANYON. A LOW TIGHT CRAWL GOES 3 FEET
77 NORTH AND SEEMS TO OPEN UP.
78 THE CANYON RUNS INTO A MASS OF BOULDERS - DEAD END.
79 THE STREAM FLOWS OUT THROUGH A PAIR OF 1 FOOT DIAMETER SEWER
79 PIPES. IT WOULD BE ADVISABLE TO USE THE DOOR.
-1 END
2
1 YOU’RE AT END OF ROAD AGAIN.
2 YOU’RE AT HILL IN ROAD.
3 YOU’RE INSIDE BUILDING.
4 YOU’RE IN VALLEY
5 YOU’RE IN FOREST
6 YOU’RE IN FOREST
7 YOU’RE AT SLIT IN STREAMBED
8 YOU’RE OUTSIDE GRATE
9 YOU’RE BELOW THE GRATE
10 YOU’RE IN COBBLE CRAWL
11 YOU’RE IN DEBRIS ROOM.
13 YOU’RE IN BIRD CHAMBER.
14 YOU’RE AT TOP OF SMALL PIT.
15 YOU’RE IN HALL OF MISTS.
17 YOU’RE ON EAST BANK OF FISSURE.
18 YOU’RE IN NUGGET OF GOLD ROOM.
19 YOU’RE IN HALL OF MT KING.
33 YOU’RE AT Y2
35 YOU’RE AT WINDOW ON PIT
36 YOU’RE IN DIRTY PASSAGE
39 YOU’RE N DUSTY ROCK ROOM.
41 YOU’RE AT WEST END OF HALL OF MISTS.
57 YOU’RE AT BRINK OF PIT.
60 YOU’RE AT EAST END OF LONG HALL.
66 YOU’RE IN SWISS CHEESE ROOM
67 YOU’RE IN TWOPIT ROOM
68 YOU’RE IN SLAB ROOM
-1
3
1 2 2 44
1 3 3 12 19 43
1 4 4 5 13 14 46 30
1 5 6 45 43
1 8 49
2 1 8 2 12 7 43 45 30
2 5 6 45 46
3 1 3 11 32 44
3 11 48
3 33 65
3 79 5 14
4 1 4 45
4 5 6 43 44 29
4 7 5 46 30
4 8 49
5 4 9 43 30
5 300 6 7 8 45
5 5 44 46
6 1 2 45
6 4 9 43 44 30
6 5 6 46
7 1 12
7 4 4 45
7 5 6 43 44
7 8 5 15 16 46 30
7 24 47 14 30
8 5 6 43 44 46
8 1 12
8 7 4 13 45
8 301 3 5 19 30
9 302 11 12
9 10 17 18 19 44
9 14 31
9 11 51
10 9 11 20 21 43
10 11 19 22 44 51
10 14 31
11 310 49
11 10 17 18 23 24 43
11 12 25 305 19 29 44
11 3 48
11 14 31
12 310 49
12 11 30 43 51
12 13 19 29 44
12 14 31
13 310 49
13 11 51
13 12 25 305 43
13 14 23 31 44
14 310 49
14 11 51
14 13 23 43
14 303 30 31 34
14 16 33 44
15 18 36 46
15 17 7 38 44
15 19 10 30 45
15 304 29 31 34 35 23 43
15 34 55
15 62 69
16 14 1
17 15 8 38 43
17 305 7
17 306 40 41 42 44 19 39
18 15 38 11 8 45
19 15 10 29 43
19 307 45 36
19 308 46 37
19 309 44 7
19 74 66
20 26 1
21 26 1
22 15 1
23 8 1
24 7 1
25 9 1
27 17 8 11 38
27 40 45
27 41 44
28 19 38 11 46
28 33 45
28 36 30 52
29 19 38 11 45
30 19 38 11 43
30 62 44 29
31 17 1
32 19 1
33 3 65
33 28 46
33 34 43 53 54
33 35 44
34 33 30
34 15 29
35 33 43 55
36 37 43 17
36 28 29 52
36 39 44
37 36 44 17
37 38 30 31 56
38 37 56 29
39 36 43
39 64 30 52 58
39 65 70
40 41 1
41 42 46 29 23 56
41 27 43
41 59 45
41 60 44 17
42 41 44
42 43 43
42 44 46
43 42 44
43 44 46
43 45 43
44 42 45
44 43 43
44 48 30
44 50 46
45 43 45
45 46 43
45 47 46
46 45 44 11
47 45 45 11
48 44 29 11
49 50 30 43
49 51 44
50 44 43
50 49 44 29
50 52 46
51 49 44
51 52 43
51 53 46
52 50 45
52 51 44
52 53 29
52 55 43
53 51 44
53 52 45
53 54 46
54 53 43 11
55 52 44
55 56 30
55 57 43
56 55 29 11
57 55 44
57 58 46
57 13 30 56
58 57 44 11
59 27 1
60 41 43 29
60 61 44
60 62 45 30
61 60 43 11
62 60 44
62 63 45
62 30 43
62 15 46
63 62 46 11
64 39 29 56 59
64 65 44
65 64 43
65 66 44
65 68 61
65 311 46
65 312 29
66 313 45
66 65 60
66 67 44
66 77 25
66 314 46
67 66 43
67 72 60
68 66 46
68 69 29
69 68 30
69 74 46
70 71 45
71 39 29
71 65 62
71 70 46
72 67 63
72 73 45
73 72 46
74 19 43
74 69 44
74 75 30
75 76 46
75 77 45
76 75 45
77 75 43
77 78 44
77 66 45
78 77 46
79 3 1
-1
4
2 ROAD
3 ENTER
3 DOOR
3 GATE
4 UPSTR
5 DOWNS
6 FORES
7 FORWA
7 CONTI
7 ONWAR
8 BACK
8 RETUR
8 RETRE
9 VALLE
10 STAIR
11 OUT
11 OUTSI
11 EXIT
11 LEAVE
12 BUILD
12 BLD
12 HOUSE
13 GULLY
14 STREA
15 ROCK
16 BED
17 CRAWL
18 COBBL
19 INWAR
19 INSID
19 IN
20 SURFA
21 NULL
21 NOWHE
22 DARK
23 PASSA
24 LOW
25 CANYO
26 AWKWA
29 UPWAR
29 UP
29 U
29 ABOVE
30 D
30 DOWNW
30 DOWN
31 PIT
32 OUTDO
33 CRACK
34 STEPS
35 DOME
36 LEFT
37 RIGHT
38 HALL
39 JUMP
40 MAGIC
41 OVER
42 ACROS
43 EAST
43 E
44 WEST
44 W
45 NORTH
45 N
46 SOUTH
46 S
47 SLIT
48 XYZZY
49 DEPRE
50 ENTRA
51 DEBRI
52 HOLE
53 WALL
54 BROKE
55 Y2
56 CLIMB
57 LOOK
57 EXAMI
57 TOUCH
57 LOOKA
58 FLOOR
59 ROOM
60 NE
61 SLAB
61 SLABR
62 SE
63 SW
64 NW
65 PLUGH
66 SECRE
67 CAVE
68 TURN
69 CROSS
70 BEDQU
1001 KEYS
1001 KEY
1002 LAMP
1002 HEADL
1003 GRATE
1004 CAGE
1005 ROD
1006 STEPS
1007 BIRD
1010 NUGGE
1010 GOLD
1011 SNAKE
1012 FISSU
1013 DIAMO
1014 SILVE
1014 BARS
1015 JEWEL
1016 COINS
1017 DWARV
1017 DWARF
1018 KNIFE
1018 KNIVE
1018 ROCK
1018 WEAPO
1018 BOULD
1019 FOOD
1019 RATIO
1020 WATER
1020 BOTTL
1021 AXE
1022 KNIFE
1023 CHEST
1023 BOX
1023 TREAS
2001 TAKE
2001 CARRY
2001 KEEP
2001 PICKU
2001 PICK
2001 WEAR
2001 CATCH
2001 STEAL
2001 CAPTU
2001 FIND
2001 WHERE
2001 GET
2002 RELEA
2002 FREE
2002 DISCA
2002 DROP
2002 DUMP
2003 DUMMY
2004 UNLOC
2004 OPEN
2004 LIFT
2005 NOTHI
2005 HOLD
2006 LOCK
2006 CLOSE
2007 LIGHT
2007 ON
2008 EXTIN
2008 OFF
2009 STRIK
2010 CALM
2010 WAVE
2010 SHAKE
2010 SING
2010 CLEAV
2011 WALK
2011 RUN
2011 TRAVE
2011 GO
2011 PROCE
2011 CONTI
2011 EXPLO
2011 GOTO
2011 FOLLO
2012 ATTAC
2012 KILL
2012 STAB
2012 FIGHT
2012 HIT
2013 POUR
2014 EAT
2015 DRINK
2016 RUB
3001 OPENS
3002 HELP
3002 ?
3002 WHAT
3003 TREE
3004 DIG
3004 EXCIV
3005 BLAST
3006 LOST
3007 MIST
3008 THROW
3009 FUCK
-1
5
201 THERE ARE SOME KEYS ON THE GROUND HERE.
202 THERE IS A SHINY BRASS LAMP NEARBY.
3 THE GRATE IS LOCKED
103 THE GRATE IS OPEN.
204 THERE IS A SMALL WICKER CAGE DISCARDED NEARBY.
205 A THREE FOOT BLACK ROD WITH A RUSTY STAR ON AN END LIES NEARBY
206 ROUGH STONE STEPS LEAD DOWN THE PIT.
7 A CHEERFUL LITTLE BIRD IS SITTING HERE SINGING.
107 THERE IS A LITTLE BIRD IN THE CAGE.
8 THE GRATE IS LOCKED
108 THE GRATE IS OPEN.
209 ROUGH STONE STEPS LEAD UP THE DOME.
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!
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
-1
6
1 SOMEWHERE NEARBY IS COLOSSAL CAVE, WHERE OTHERS HAVE FOUND
1 FORTUNES IN TREASURE AND GOLD, THOUGH IT IS RUMORED
1 THAT SOME WHO ENTER ARE NEVER SEEN AGAIN. MAGIC IS SAID
1 TO WORK IN THE CAVE.  I WILL BE YOUR EYES AND HANDS. DIRECT
1 ME WITH COMMANDS OF 1 OR 2 WORDS.
1 (ERRORS, SUGGESTIONS, COMPLAINTS TO CROWTHER)
1 (IF STUCK TYPE HELP FOR SOME HINTS)
2 A LITTLE DWARF WITH A BIG KNIFE BLOCKS YOUR WAY.
3 A LITTLE DWARF JUST WALKED AROUND A CORNER,SAW YOU, THREW
3 A LITTLE AXE AT YOU WHICH MISSED, CURSED, AND RAN AWAY.
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!
8 A HOLLOW VOICE SAYS ‘PLUGH’
9 THERE IS NO WAY TO GO THAT DIRECTION.
10 I AM UNSURE HOW YOU ARE FACING. USE COMPASS POINTS OR
10 NEARBY OBJECTS.
11 I DON’T KNOW IN FROM OUT HERE. USE COMPASS POINTS OR NAME
11 SOMETHING IN THE GENERAL DIRECTION YOU WANT TO GO.
12 I DON’T KNOW HOW TO APPLY THAT WORD HERE.
13 I DON’T UNDERSTAND THAT!
14 I ALWAYS UNDERSTAND COMPASS DIRECTIONS, OR YOU CAN NAME
14 A NEARBY THING TO HEAD THAT WAY.
15 SORRY, BUT I AM NOT ALLOWED TO GIVE MORE DETAIL. I WILL
15 REPEAT THE LONG DESCRIPTION OF YOUR LOCATION.
16 IT IS NOW PITCH BLACK. IF YOU PROCEED YOU WILL LIKELY
16 FALL INTO A PIT.
17 IF YOU PREFER, SIMPLY TYPE W RATHER THAN WEST.
18 ARE YOU TRYING TO CATCH THE BIRD?
19 THE BIRD IS FRIGHTENED RIGHT NOW AND YOU CANNOT CATCH IT
19 NO MATTER WHAT YOU TRY. PERHAPS YOU MIGHT TRY LATER.
20 ARE YOU TRYING TO ATTACK OR AVOID THE SNAKE?
21 YOU CAN’T KILL THE SNAKE, OR DRIVE IT AWAY, OR AVOID IT,
21 OR ANYTHING LIKE THAT. THERE IS A WAY TO GET BY, BUT YOU
21 DON’T HAVE THE NECESSARY RESOURCES RIGHT NOW.
22 MY WORD FOR HITTING SOMETHING WITH THE ROD IS ‘STRIKE’.
23 YOU FELL INTO A PIT AND BROKE EVERY BONE IN YOUR BODY!
24 YOU ARE ALREADY CARRYING IT!
25 YOU CAN’T BE SERIOUS!
26 THE BIRD WAS UNAFRAID WHEN YOU ENTERED, BUT AS YOU APPROACH
26 IT BECOMES DISTURBED AND YOU CANNOT CATCH IT.
27 YOU CAN CATCH THE BIRD, BUT YOU CANNOT CARRY IT.
28 THERE IS NOTHING HERE WITH A LOCK!
29 YOU AREN’T CARRYING IT!
30 THE LITTLE BIRD ATTACKS THE GREEN SNAKE, AND IN AN
30 ASTOUNDING FLURRY DRIVES THE SNAKE AWAY.
31 YOU HAVE NO KEYS!
32 IT HAS NO LOCK.
33 I DON’T KNOW HOW TO LOCK OR UNLOCK SUCH A THING.
34 THE GRATE WAS ALREADY LOCKED.
35 THE GRATE IS NOW LOCKED.
36 THE GRATE WAS ALREADY UNLOCKED.
37 THE GRATE IS NOW UNLOCKED.
38 YOU HAVE NO SOURCE OF LIGHT.
39 YOUR LAMP IS NOW ON.
40 YOUR LAMP IS NOW OFF.
41 STRIKE WHAT?
42 NOTHING HAPPENS.
43 WHERE?
44 THERE IS NOTHING HERE TO ATTACK.
45 THE LITTLE BIRD IS NOW DEAD. ITS BODY DISAPPEARS.
46 ATTACKING THE SNAKE BOTH DOESN’T WORK AND IS VERY DANGEROUS.
47 YOU KILLED A LITTLE DWARF.
48 YOU ATTACK A LITTLE DWARF, BUT HE DODGES OUT OF THE WAY.
49 I HAVE TROUBLE WITH THE WORD ‘THROW’ BECAUSE YOU CAN THROW
49 A THING OR THROW AT A THING. PLEASE USE DROP OR ATTACK INSTEAD.
50 GOOD TRY, BUT THAT IS AN OLD WORN-OUT MAGIC WORD.
51 I KNOW OF PLACES, ACTIONS, AND THINGS. MOST OF MY VOCABULARY
51 DESCRIBES PLACES AND IS USED TO MOVE YOU THERE. TO MOVE TRY
51 WORDS LIKE FOREST, BUILDING, DOWNSTREAM, ENTER, EAST, WEST
51 NORTH, SOUTH, UP, OR DOWN.  I KNOW ABOUT A FEW SPECIAL OBJECTS,
51 LIKE A BLACK ROD HIDDEN IN THE CAVE. THESE OBJECTS CAN BE
51 MANIPULATED USING ONE OF THE ACTION WORDS THAT I KNOW. USUALLY
51 YOU WILL NEED TO GIVE BOTH THE OBJECT AND ACTION WORDS
51 (IN EITHER ORDER), BUT SOMETIMES I CAN INFER THE OBJECT FROM
51 THE VERB ALONE. THE OBJECTS HAVE SIDE EFFECTS - FOR
51 INSTANCE, THE ROD SCARES THE BIRD.
51 USUALLY PEOPLE HAVING TROUBLE MOVING JUST NEED TO TRY A FEW
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 TO SPEED THE GAME YOU CAN SOMETIMES MOVE LONG DISTANCES
51 WITH A SINGLE WORD. FOR EXAMPLE, ‘BUILDING’ USUALLY GETS
51 YOU TO THE BUILDING FROM ANYWHERE ABOVE GROUND EXCEPT WHEN
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!
52 IT MISSES!
53 IT GETS YOU!
54 OK
55 YOU CAN’T UNLOCK THE KEYS.
56 YOU HAVE CRAWLED AROUND IN SOME LITTLE HOLES AND WOUND UP
56 BACK IN THE MAIN PASSAGE.
57 I DON’T KNOW WHERE THE CAVE IS, BUT HEREABOUTS NO STREAM
57 CAN RUN ON THE SURFACE FOR LONG. I WOULD TRY THE STREAM.
58 I NEED MORE DETAILED INSTRUCTIONS TO DO THAT.
59 I CAN ONLY TELL YOU WHAT YOU SEE AS YOU MOVE ABOUT
59 AND MANIPULATE THINGS. I CANNOT TELL YOU WHERE REMOTE THINGS
59 ARE.
60 I DON’T KNOW THAT WORD.
61 WHAT?
62 ARE YOU TRYING TO GET INTO THE CAVE?
63 THE GRATE IS VERY SOLID AND HAS A HARDENED STEEL LOCK. YOU
63 CANNOT ENTER WITHOUT A KEY, AND THERE ARE NO KEYS NEARBY.
63 I WOULD RECOMMEND LOOKING ELSEWHERE FOR THE KEYS.
64 THE TREES OF THE FOREST ARE LARGE HARDWOOD OAK AND MAPLE,
64 WITH AN OCCASIONAL GROVE OF PINE OR SPRUCE. THERE IS QUITE
64 A BIT OF UNDERGROWTH, LARGELY BIRCH AND ASH SAPLINGS PLUS
64 NONDESCRITPT BUSHES OF VARIOUS SORTS. THIS TIME OF YEAR
64 VISIBILITY IS QUITE RESTRICTED BY ALL THE LEAVES, BUT TRAVEL
64 IS QUITE EASY IF YOU DETOUR AROUND THE SPRUCE AND BERRY BUSHES.
65 WELCOME TO ADVENTURE!!  WOULD YOU LIKE INSTRUCTIONS?
66 DIGGING WITHOUT A SHOVEL IS QUITE IMPRACTICAL: EVEN WITH A
66 SHOVEL PROGRESS IS UNLIKELY.
67 BLASTING REQUIRES DYNAMITE.
68 I’M AS CONFUSED AS YOU ARE.
69 MIST IS A WHITE VAPOR, USUALLY WATER, SEEN FROM TIME TO TIME
69 IN CAVERNS. IT CAN BE FOUND ANYWHERE BUT IS FREQUENTLY A SIGN
69 OF A DEEP PIT LEADING DOWN TO WATER.
70 YOUR FEET ARE NOW WET.
71 THERE IS NOTHING HERE TO EAT.
72 EATEN!
73 THERE IS NO DRINKABLE WATER HERE.
74 THE BOTTLE OF WATER IS NOW EMPTY.
75 RUBBING THE ELECTRIC LAMP IS NOT PARTICULARLY REWARDING.
75 ANYWAY, NOTHING EXCITING HAPPENS.
76 PECULIAR.  NOTHING UNEXPECTED HAPPENS.
77 YOUR BOTTLE IS EMPTY AND THE GROUND IS WET.
78 YOU CAN’T POUR THAT.
79 WATCH IT!
80 WHICH WAY?
-1
0


Original fortran code for Adventure - part 4

Posted in Text-based gaming on 01 - February 2008 at 02:55 PM (16 years ago) 184 views.

Cross posting this to reduce possibility of link rot and preserve important part of our heritage:

Source: http://jerz.setonhill.edu/if/crowther/
Original news story: http://www.gamedev.net/community/forums/topic.asp?topic_id=460192

If you are the owner of this code, and would like me to remove it, please let me know. kthxbai.
C ADVENTURES
IMPLICIT INTEGER(A-Z)
REAL RAN
COMMON RTEXT,LLINE
DIMENSION IOBJ(300),ICHAIN(100),IPLACE(100)
1 ,IFIXED(100),COND(300),PROP(100),ABB(300),LLINE(1000,22)
2 ,LTEXT(300),STEXT(300),KEY(300),DEFAULT(300),TRAVEL(1000)
3 ,TK(25),KTAB(1000),ATAB(1000),BTEXT(200),DSEEN(10)
4 ,DLOC(10),ODLOC(10),DTRAV(20),RTEXT(100),JSPKT(100)
5 ,IPLT(100),IFIXT(100),QUIP(100)

C READ THE PARAMETERS

IF(SETUP.NE.0) GOTO 1
SETUP=1
KEYS=1
LAMP=2
GRATE=3
ROD=5
BIRD=7
NUGGET=10
SNAKE=11
FOOD=19
WATER=20
AXE=21
DATA(QUIP(I),I=1,9)/50,51,64,66,67,68,69,49,79/
DATA(JSPKT(I),I=1,16)/24,29,0,31,0,31,38,38,42,42,43,46,77,71
1 ,73,75/
DATA(IPLT(I),I=1,20)/3,3,8,10,11,14,13,9,15,18,19,17,27,28,29
1 ,30,0,0,3,3/
DATA(IFIXT(I),I=1,20)/0,0,1,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0/
DATA(DTRAV(I),I=1,15)/36,28,19,30,62,60,41,27,17,15,19,28,36
1 ,300,300/
DO 1001 I=1,300
STEXT(I)=0
IF(I.LE.200) BTEXT(I)=0
IF(I.LE.100)RTEXT(I)=0
1001 LTEXT(I)=0
I=1
CALL IFILE(1,‘TEXT’)
1002 READ(1,1003) IKIND
1003 FORMAT(G)
GOTO(1100,1004,1004,1013,1020,1004,1004)(IKIND+1)
1004 READ(1,1005)JKIND,(LLINE(I,J),J=3,22)
1005 FORMAT(1G,20A5)
IF(JKIND.EQ.-1) GOTO 1002
DO 1006 K=1,20
KK=K
IF(LLINE(I,21-K).NE.’ ‘) GOTO 1007
1006 CONTINUE
STOP
1007 LLINE(I,2)=20-KK+1
LLINE(I,1)=0
IF(IKIND.EQ.6)GOTO 1023
IF(IKIND.EQ.5)GOTO 1011
IF(IKIND.EQ.1) GOTO 1008
IF(STEXT(JKIND).NE.0) GOTO 1009
STEXT(JKIND)=I
GOTO 1010

1008 IF(LTEXT(JKIND).NE.0) GOTO 1009
LTEXT(JKIND)=I
GOTO 1010
1009 LLINE(I-1,1)=I
1010 I=I+1
IF(I.NE.1000)GOTO 1004
PAUSE ‘TOO MANY LINES’

1011 IF(JKIND.LT.200)GOTO 1012
IF(BTEXT(JKIND-100).NE.0)GOTO 1009
BTEXT(JKIND-100)=I
BTEXT(JKIND-200)=I
GOTO 1010
1012 IF(BTEXT(JKIND).NE.0)GOTO 1009
BTEXT(JKIND)=I
GOTO 1010

1023 IF(RTEXT(JKIND).NE.0) GOTO 1009
RTEXT(JKIND)=I
GOTO 1010

1013 I=1
1014 READ(1,1015)JKIND,LKIND,(TK(L),L=1,10)
1015 FORMAT(12G)
IF(JKIND.EQ.-1) GOTO 1002
IF(KEY(JKIND).NE.0) GOTO 1016
KEY(JKIND)=I
GOTO 1017
1016 TRAVEL(I-1)=-TRAVEL(I-1)
1017 DO 1018 L=1,10
IF(TK(L).EQ.0) GOTO 1019
TRAVEL(I)=LKIND*1024+TK(L)
I=I+1
IF(I.EQ.1000) STOP
1018 CONTINUE
1019 TRAVEL(I-1)=-TRAVEL(I-1)
GOTO 1014

1020 DO 1022 IU=1,1000
READ(1,1021) KTAB(IU),ATAB(IU)
1021 FORMAT(G,A5)
IF(KTAB(IU).EQ.-1)GOTO 1002
1022 CONTINUE
PAUSE ‘TOO MANY WORDS’


C TRAVEL = NEG IF LAST THIS SOURCE + DEST*1024 + KEYWORD

C COND = 1 IF LIGHT,  2 IF DON T ASK QUESTION

 

1100 DO 1101 I=1,100
IPLACE(I)=IPLT(I)
IFIXED(I)=IFIXT(I)
1101 ICHAIN(I)=0

DO 1102 I=1,300
COND(I)=0
ABB(I)=0
1102 IOBJ(I)=0
DO 1103 I=1,10
1103 COND(I)=1
COND(16)=2
COND(20)=2
COND(21)=2
COND(22)=2
COND(23)=2
COND(24)=2
COND(25)=2
COND(26)=2
COND(31)=2
COND(32)=2
COND(79)=2

DO 1107 I=1,100
KTEM=IPLACE(I)
IF(KTEM.EQ.0)GOTO 1107
IF(IOBJ(KTEM).NE.0) GOTO 1104
IOBJ(KTEM)=I
GO TO 1107
1104 KTEM=IOBJ(KTEM)
1105 IF(ICHAIN(KTEM).NE.0) GOTO 1106
ICHAIN(KTEM)=I
GOTO 1107
1106 KTEM=ICHAIN(KTEM)
GOTO 1105
1107 CONTINUE
IDWARF=0
IFIRST=1
IWEST=0
ILONG=1
IDETAL=0
PAUSE ‘INIT DONE’

 

1 CALL YES(65,1,0,YEA)
L=1
LOC=1
2 DO 73 I=1,3
IF(ODLOC(I).NE.L.OR.DSEEN(I).EQ.0)GOTO 73
L=LOC
CALL SPEAK(2)
GOTO 74
73 CONTINUE
74 LOC=L

C DWARF STUFF

IF(IDWARF.NE.0) GOTO 60
IF(LOC.EQ.15) IDWARF=1
GOTO 71
60 IF(IDWARF.NE.1)GOTO 63
IF(RAN(QZ).GT.0.05) GOTO 71
IDWARF=2
DO 61 I=1,3
DLOC(I)=0
ODLOC(I)=0
61 DSEEN(I)=0
CALL SPEAK(3)
ICHAIN(AXE)=IOBJ(LOC)
IOBJ(LOC)=AXE
IPLACE(AXE)=LOC
GOTO 71

63 IDWARF=IDWARF+1
ATTACK=0
DTOT=0
STICK=0
DO 66 I=1,3
IF(2*I+IDWARF.LT.8)GOTO 66
IF(2*I+IDWARF.GT.23.AND.DSEEN(I).EQ.0)GOTO 66
ODLOC(I)=DLOC(I)
IF(DSEEN(I).NE.0.AND.LOC.GT.14)GOTO 65
DLOC(I)=DTRAV(I*2+IDWARF-8)
DSEEN(I)=0
IF(DLOC(I).NE.LOC.AND.ODLOC(I).NE.LOC) GOTO 66
65 DSEEN(I)=1
DLOC(I)=LOC
DTOT=DTOT+1
IF(ODLOC(I).NE.DLOC(I)) GOTO 66
ATTACK=ATTACK+1
IF(RAN(QZ).LT.0.1) STICK=STICK+1
66 CONTINUE
IF(DTOT.EQ.0) GOTO 71
IF(DTOT.EQ.1)GOTO 75
TYPE 67,DTOT
67 FORMAT(’ THERE ARE ‘,I2,’ THREATENING LITTLE DWARVES IN THE
1 ROOM WITH YOU.’,/)
GOTO 77
75 CALL SPEAK(4)
77 IF(ATTACK.EQ.0)GOTO 71
IF(ATTACK.EQ.1)GOTO 79
TYPE 78,ATTACK
78 FORMAT(’ ‘,I2,’ OF THEM THROW KNIVES AT YOU!’,/)
GOTO 81
79 CALL SPEAK(5)
CALL SPEAK(52+STICK)
GOTO(71,83)(STICK+1)

81 IF(STICK.EQ.0) GOTO 69
IF(STICK.EQ.1)GOTO 82
TYPE 68,STICK
68 FORMAT(’ ‘,I2,’ OF THEM GET YOU.’,/)
GOTO 83
82 CALL SPEAK(6)
83 PAUSE ‘GAMES OVER’
GOTO 71
69 CALL SPEAK(7)

C PLACE DESCRIPTOR

 

71 KK=STEXT(L)
IF(ABB(L).EQ.0.OR.KK.EQ.0)KK=LTEXT(L)
IF(KK.EQ.0) GOTO 7
4 TYPE 5,(LLINE(KK,JJ),JJ=3,LLINE(KK,2))
5 FORMAT(20A5)
KK=KK+1
IF(LLINE(KK-1,1).NE.0) GOTO 4
TYPE 6
6 FORMAT(/)
7 IF(COND(L).EQ.2)GOTO 8
IF(LOC.EQ.33.AND.RAN(QZ).LT.0.25)CALL SPEAK(8)
J=L
GOTO 2000

C GO GET A NEW LOCATION

8 KK=KEY(LOC)
IF(KK.EQ.0)GOTO 19
IF(K.EQ.57)GOTO 32
IF(K.EQ.67)GOTO 40
IF(K.EQ.8)GOTO 12
LOLD=L
9 LL=TRAVEL(KK)
IF(LL.LT.0) LL=-LL
IF(1.EQ.MOD(LL,1024))GOTO 10
IF(K.EQ.MOD(LL,1024))GOTO 10
IF(TRAVEL(KK).LT.0)GOTO 11
KK=KK+1
GOTO 9
12 TEMP=LOLD
LOLD=L
L=TEMP
GOTO 21
10 L=LL/1024
GOTO 21
11 JSPK=12
IF(K.GE.43.AND.K.LE.46)JSPK=9
IF(K.EQ.29.OR.K.EQ.30)JSPK=9
IF(K.EQ.7.OR.K.EQ.8.OR.K.EQ.36.OR.K.EQ.37.OR.K.EQ.68)
1 JSPK=10
IF(K.EQ.11.OR.K.EQ.19)JSPK=11
IF(JVERB.EQ.1)JSPK=59
IF(K.EQ.48)JSPK=42
IF(K.EQ.17)JSPK=80
CALL SPEAK(JSPK)
GOTO 2
19 CALL SPEAK(13)
L=LOC
IF(IFIRST.EQ.0) CALL SPEAK(14)
21 IF(L.LT.300)GOTO 2
IL=L-300+1
GOTO(22,23,24,25,26,31,27,28,29,30,33,34,36,37)IL
GOTO 2

22 L=6
IF(RAN(QZ).GT.0.5) L=5
GOTO 2
23 L=23
IF(PROP(GRATE).NE.0) L=9
GOTO 2
24 L=9
IF(PROP(GRATE).NE.0)L=8
GOTO 2
25 L=20
IF(IPLACE(NUGGET).NE.-1)L=15
GOTO 2
26 L=22
IF(IPLACE(NUGGET).NE.-1) L=14
GOTO 2
27 L=27
IF(PROP(12).EQ.0)L=31
GOTO 2
28 L=28
IF(PROP(SNAKE).EQ.0)L=32
GOTO 2
29 L=29
IF(PROP(SNAKE).EQ.0) L=32
GOTO 2
30 L=30
IF(PROP(SNAKE).EQ.0) L=32
GOTO 2
31 PAUSE ‘GAME IS OVER’
GOTO 1100
32 IF(IDETAL.LT.3)CALL SPEAK(15)
IDETAL=IDETAL+1
L=LOC
ABB(L)=0
GOTO 2
33 L=8
IF(PROP(GRATE).EQ.0) L=9
GOTO 2
34 IF(RAN(QZ).GT.0.2)GOTO 35
L=68
GOTO 2
35 L=65
38 CALL SPEAK(56)
GOTO 2
36 IF(RAN(QZ).GT.0.2)GOTO 35
L=39
IF(RAN(QZ).GT.0.5)L=70
GOTO 2
37 L=66
IF(RAN(QZ).GT.0.4)GOTO 38
L=71
IF(RAN(QZ).GT.0.25)L=72
GOTO 2
39 L=66
IF(RAN(QZ).GT.0.2)GOTO 38
L=77
GOTO 2
40 IF(LOC.LT.8)CALL SPEAK(57)
IF(LOC.GE.8)CALL SPEAK(58)
L=LOC
GOTO 2

 

C DO NEXT INPUT


2000 LTRUBL=0
LOC=J
ABB(J)=MOD((ABB(J)+1),5)
IDARK=0
IF(MOD(COND(J),2).EQ.1) GOTO 2003
IF((IPLACE(2).NE.J).AND.(IPLACE(2).NE.-1)) GOTO 2001
IF(PROP(2).EQ.1)GOTO 2003
2001 CALL SPEAK(16)
IDARK=1


2003 I=IOBJ(J)
2004 IF(I.EQ.0) GOTO 2011
IF(((I.EQ.6).OR.(I.EQ.9)).AND.(IPLACE(10).EQ.-1))GOTO 2008
ILK=I
IF(PROP(I).NE.0) ILK=I+100
KK=BTEXT(ILK)
IF(KK.EQ.0) GOTO 2008
2005 TYPE 2006,(LLINE(KK,JJ),JJ=3,LLINE(KK,2))
2006 FORMAT(20A5)
KK=KK+1
IF(LLINE(KK-1,1).NE.0) GOTO 2005
TYPE 2007
2007 FORMAT(/)
2008 I=ICHAIN(I)
GOTO 2004

 

C K=1 MEANS ANY INPUT


2012 A=B
JTWO=0
GOTO 2021

2010 JSPK=QUIP(K)
GOTO 5200

2009 JSPK=54
5200 CALL SPEAK(JSPK)

2011 JVERB=0
JOBJ=0
JTWO=0

2020 CALL GETIN(JTWO,A,TWOWD,B)
K=70
IF(A.EQ.‘ENTER’.AND.(B.EQ.‘STREAM’.OR.B.EQ.‘WATER’))GOTO 2010
IF(A.EQ.‘ENTER’.AND.JTWO.NE.0)GOTO 2012
2021 IF(A.NE.‘WEST’)GOTO 2023
IWEST=IWEST+1
IF(IWEST.NE.10)GOTO 2023
CALL SPEAK(17)
2023 DO 2024 I=1,1000
IF(KTAB(I).EQ.-1)GOTO 3000
IF(ATAB(I).EQ.A)GOTO 2025
2024 CONTINUE
PAUSE ‘ERROR 6’
2025 K=MOD(KTAB(I),1000)
KQ=KTAB(I)/1000+1
GOTO (5014,5000,2026,2010)KQ
PAUSE ‘NO NO’
2026 JVERB=K
JSPK=JSPKT(JVERB)
IF(JTWO.NE.0)GOTO 2028
IF(JOBJ.EQ.0)GOTO 2036
2027 GOTO(9000,5066,3000,5031,2009,5031,9404,9406,5081,5200,
1 5200,5300,5506,5502,5504,5505)JVERB
PAUSE ‘ERROR 5’


2028 A=TWOWD
B=’ ‘
JTWO=0
GOTO 2023

3000 JSPK=60
IF(RAN(QZ).GT.0.8)JSPK=61
IF(RAN(QZ).GT.0.8)JSPK=13
CALL SPEAK(JSPK)
LTRUBL=LTRUBL+1
IF(LTRUBL.NE.3)GOTO 2020
IF(J.NE.13.OR.IPLACE(7).NE.13.OR.IPLACE(5).NE.-1)GOTO 2032
CALL YES(18,19,54,YEA)
GOTO 2033
2032 IF(J.NE.19.OR.PROP(11).NE.0.OR.IPLACE(7).EQ.-1)GOTO 2034
CALL YES(20,21,54,YEA)
GOTO 2033
2034 IF(J.NE.8.OR.PROP(GRATE).NE.0)GOTO 2035
CALL YES(62,63,54,YEA)
2033 IF(YEA.EQ.0)GOTO 2011
GOTO 2020
2035 IF(IPLACE(5).NE.J.AND.IPLACE(5).NE.-1)GOTO 2020
IF(JOBJ.NE.5)GOTO 2020
CALL SPEAK(22)
GOTO 2020


2036 GOTO(2037,5062,5062,9403,2009,9403,9404,9406,5062,5062,
1 5200,5300,5062,5062,5062,5062)JVERB
PAUSE ‘OOPS’
2037 IF((IOBJ(J).EQ.0).OR.(ICHAIN(IOBJ(J)).NE.0)) GOTO 5062
DO 5312 I=1,3
IF(DSEEN(I).NE.0)GOTO 5062
5312 CONTINUE
JOBJ=IOBJ(J)
GOTO 2027
5062 IF(B.NE.’ ‘)GOTO 5333
TYPE 5063,A
5063 FORMAT(’  ‘,A5,’ WHAT?’,/)
GOTO 2020

5333 TYPE 5334,A,B
5334 FORMAT(’ ‘,2A5,’ WHAT?’,/)
GOTO 2020
5014 IF(IDARK.EQ.0) GOTO 8

IF(RAN(QZ).GT.0.25) GOTO 8
5017 CALL SPEAK(23)
PAUSE ‘GAME IS OVER’
GOTO 2011

 

5000 JOBJ=K
IF(JTWO.NE.0)GOTO 2028
IF((J.EQ.IPLACE(K)).OR.(IPLACE(K).EQ.-1)) GOTO 5004
IF(K.NE.GRATE)GOTO 502
IF((J.EQ.1).OR.(J.EQ.4).OR.(J.EQ.7))GOTO 5098
IF((J.GT.9).AND.(J.LT.15))GOTO 5097
502 IF(B.NE.’ ‘)GOTO 5316
TYPE 5005,A
5005 FORMAT(’ I SEE NO ‘,A5,’ HERE.’,/)
GOTO 2011
5316 TYPE 5317,A,B
5317 FORMAT(’ I SEE NO ‘,2A5,’ HERE.’/)
GOTO 2011
5098 K=49
GOTO 5014
5097 K=50
GOTO 5014
5004 JOBJ=K
IF(JVERB.NE.0)GOTO 2027


5064 IF(B.NE.’ ‘)GOTO 5314
TYPE 5001,A
5001 FORMAT(’ WHAT DO YOU WANT TO DO WITH THE ‘,A5,’?’,/)
GOTO 2020
5314 TYPE 5315,A,B
5315 FORMAT(’ WHAT DO YOU WANT TO DO WITH THE ‘,2A5,’?’,/)
GOTO 2020

C CARRY

9000 IF(JOBJ.EQ.18)GOTO 2009
IF(IPLACE(JOBJ).NE.J) GOTO 5200
9001 IF(IFIXED(JOBJ).EQ.0)GOTO 9002
CALL SPEAK(25)
GOTO 2011
9002 IF(JOBJ.NE.BIRD)GOTO 9004
IF(IPLACE(ROD).NE.-1)GOTO 9003
CALL SPEAK(26)
GOTO 2011
9003 IF((IPLACE(4).EQ.-1).OR.(IPLACE(4).EQ.J)) GOTO 9004
CALL SPEAK(27)
GOTO 2011
9004 IPLACE(JOBJ)=-1
9005 IF(IOBJ(J).NE.JOBJ) GOTO 9006
IOBJ(J)=ICHAIN(JOBJ)
GOTO 2009
9006 ITEMP=IOBJ(J)
9007 IF(ICHAIN(ITEMP).EQ.(JOBJ)) GOTO 9008
ITEMP=ICHAIN(ITEMP)
GOTO 9007
9008 ICHAIN(ITEMP)=ICHAIN(JOBJ)
GOTO 2009


C LOCK, UNLOCK, NO OBJECT YET

9403 IF((J.EQ.8).OR.(J.EQ.9))GOTO 5105
5032 CALL SPEAK(28)
GOTO 2011
5105 JOBJ=GRATE
GOTO 2027

C DISCARD OBJECT

5066 IF(JOBJ.EQ.18)GOTO 2009
IF(IPLACE(JOBJ).NE.-1) GOTO 5200
5012 IF((JOBJ.NE.BIRD).OR.(J.NE.19).OR.(PROP(11).EQ.1))GOTO 9401
CALL SPEAK(30)
PROP(11)=1
5160 ICHAIN(JOBJ)=IOBJ(J)
IOBJ(J)=JOBJ
IPLACE(JOBJ)=J
GOTO 2011

9401 CALL SPEAK(54)
GOTO 5160

C LOCK,UNLOCK OBJECT

5031 IF(IPLACE(KEYS).NE.-1.AND.IPLACE(KEYS).NE.J)GOTO 5200
IF(JOBJ.NE.4)GOTO 5102
CALL SPEAK(32)
GOTO 2011
5102 IF(JOBJ.NE.KEYS)GOTO 5104
CALL SPEAK(55)
GOTO 2011
5104 IF(JOBJ.EQ.GRATE)GOTO 5107
CALL SPEAK(33)
GOTO 2011
5107 IF(JVERB.EQ.4) GOTO 5033
IF(PROP(GRATE).NE.0)GOTO 5034
CALL SPEAK(34)
GOTO 2011
5034 CALL SPEAK(35)
PROP(GRATE)=0
PROP(8)=0
GOTO 2011
5033 IF(PROP(GRATE).EQ.0)GOTO 5109
CALL SPEAK(36)
GOTO 2011
5109 CALL SPEAK(37)
PROP(GRATE)=1
PROP(8)=1
GOTO 2011

 

C LIGHT LAMP

9404 IF((IPLACE(2).NE.J).AND.(IPLACE(2).NE.-1))GOTO 5200
PROP(2)=1
IDARK=0
CALL SPEAK(39)
GOTO 2011

C LAMP OFF

9406 IF((IPLACE(2).NE.J).AND.(IPLACE(2).NE.-1)) GOTO 5200
PROP(2)=0
CALL SPEAK(40)
GOTO 2011

C STRIKE

5081 IF(JOBJ.NE.12)GOTO 5200
PROP(12)=1
GOTO 2003

C ATTACK

5300 DO 5313 ID=1,3
IID=ID
IF(DSEEN(ID).NE.0)GOTO 5307
5313 CONTINUE
IF(JOBJ.EQ.0)GOTO 5062
IF(JOBJ.EQ.SNAKE) GOTO 5200
IF(JOBJ.EQ.BIRD) GOTO 5302
CALL SPEAK(44)
GOTO 2011
5302 CALL SPEAK(45)
IPLACE(JOBJ)=300
GOTO 9005

5307 IF(RAN(QZ).GT.0.4) GOTO 5309
DSEEN(IID)=0
ODLOC(IID)=0
DLOC(IID)=0
CALL SPEAK(47)
GOTO 5311
5309 CALL SPEAK(48)
5311 K=21
GOTO 5014

C EAT

5502 IF((IPLACE(FOOD).NE.J.AND.IPLACE(FOOD).NE.-1).OR.PROP(FOOD).NE.0
1 .OR.JOBJ.NE.FOOD)GOTO 5200
PROP(FOOD)=1
5501 JSPK=72
GOTO 5200

C DRINK

5504 IF((IPLACE(WATER).NE.J.AND.IPLACE(WATER).NE.-1)
1 .OR.PROP(WATER).NE.0.OR.JOBJ.NE.WATER) GOTO 5200
PROP(WATER)=1
JSPK=74
GOTO 5200

C RUB

5505 IF(JOBJ.NE.LAMP)JSPK=76
GOTO 5200

C POUR

5506 IF(JOBJ.NE.WATER)JSPK=78
PROP(WATER)=1
GOTO 5200

 

END


SUBROUTINE SPEAK(IT)
IMPLICIT INTEGER(A-Z)
COMMON RTEXT,LLINE
DIMENSION RTEXT(100),LLINE(1000,22)

KKT=RTEXT(IT)
IF(KKT.EQ.0)RETURN
999 TYPE 998, (LLINE(KKT,JJT),JJT=3,LLINE(KKT,2))
998 FORMAT(20A5)
KKT=KKT+1
IF(LLINE(KKT-1,1).NE.0)GOTO 999
997 TYPE 996
996 FORMAT(/)
RETURN
END


SUBROUTINE GETIN(TWOW,B,C,D)
IMPLICIT INTEGER(A-Z)
DIMENSION A(5),M2(6)
DATA M2/“4000000000,“20000000,“100000,“400,“2,0/
6 ACCEPT 1,(A(I), I=1,4)
1 FORMAT(4A5)
TWOW=0
S=0
B=A(1)
DO 2 J=1,4
DO 2 K=1,5
MASK1=“774000000000
IF(K.NE.1) MASK1=“177*M2(K)
IF(((A(J).XOR.“201004020100).AND.MASK1).EQ.0)GOTO 3
IF(S.EQ.0) GOTO 2
TWOW=1
CALL SHIFT(A(J),7*(K-1),XX)
CALL SHIFT(A(J+1),7*(K-6),YY)
MASK=-M2(6-K)
C=(XX.AND.MASK)+(YY.AND.(-2-MASK))
GOTO 4
3 IF(S.EQ.1) GOTO 2
S=1
IF(J.EQ.1) B=(B.AND.-M2(K)).OR.(“201004020100.AND.
1 (-M2(K).XOR.-1))
2 CONTINUE
4 D=A(2)
RETURN
END

SUBROUTINE YES(X,Y,Z,YEA)
IMPLICIT INTEGER(A-Z)
CALL SPEAK(X)
CALL GETIN(JUNK,IA1,JUNK,IB1)
IF(IA1.EQ.‘NO’.OR.IA1.EQ.‘N’) GOTO 1
YEA=1
IF(Y.NE.0) CALL SPEAK(Y)
RETURN
1 YEA=0
IF(Z.NE.0)CALL SPEAK(Z)
RETURN
END

 

SUBROUTINE SHIFT (VAL,DIST,RES)
IMPLICIT INTEGER (A-Z)
RES=VAL
IF(DIST)10,20,30
10 IDIST=-DIST
DO 11 I=1,IDIST
J = 0
IF (RES.LT.0) J=“200000000000
11 RES = ((RES.AND.“377777777777)/2) + J
20 RETURN
30 DO 31 I=1,DIST
j = 0
IF ((RES.AND.“200000000000).NE.0) J=“400000000000
31 RES = (RES.AND.“177777777777)*2 + J
RETURN
END

 


Good text-based gaming links

Posted in Text-based gaming Links on 18 - July 2007 at 04:54 PM (16 years ago) 198 views.

I’m a long time text-based gaming fan.  I fondly remember Zork and I enjoyed many titles from the now-defunct Infocom company.

About 7 or 8 years ago, I discovered multi-player text based games (MUD’s) and I am pleased to report text-based gaming is alive and well. I prefer MUSH’es rather than MUD’s, really just a preference. I’ve included some excellent community sites which I encourage you to visit.

http://community.pennmush.org/
http://www.mudconnect.com/
http://www.topmudsites.com/
http://www.electricsoup.net/
http://www.tinymux.org/wiki/index.php/Main_Page

and of course,

http://en.wikipedia.org/wiki/Interactive_fiction
(which is probably the most direct descendant from Zork)