page@swan.ulowell.edu (Bob Page) (02/02/89)
Submitted-by: ejkst@unix.cis.pittsburgh.edu (Eric J. Kennedy) Posting-number: Volume 89, Issue 8 Archive-name: fun/world.1 # This is a shell archive. # Remove everything above and including the cut line. # Then run the rest of the file through sh. #----cut here-----cut here-----cut here-----cut here----# #!/bin/sh # shar: Shell Archiver # Run the following text with /bin/sh to create: # README # data.dat # vocab.dat # This archive created: Mon Jan 30 18:06:11 1989 cat << \SHAR_EOF > README World for the Amiga version 1.02 (not called AmigaW*rld for obvious reasons...) This is Doug McDonald's text adventure game "WORLD". See the original ReadMe file below for a description. This version runs on any Amiga. World requires about 100K of memory. (200K if you copy the data file to a ram disk first, which makes for a faster game.) To run from the workbench: -------------------------- Only the files World, World.info and q1text.dat are required. Q1text.dat.info is optional. To run World, simply double click on the World icon. Q1text.dat must be in the same directory. Alternatively, you can double click on the q1text.dat icon. By selecting the q1text.dat icon and choosing 'Info' from the Workbench menu, you can enter the full path to the program World in the string gadget 'Default Tool'. (This is initially set to 'World:World'.) This way, you can drag (copy) q1text.dat to a ram disk, and double click on it there; World will then operate off of the ram disk, speeding up the game considerably. World looks for "WIN" in the tooltypes. It defaults to a 640 by 200 NEWCON: window. To change this, click once on the World icon, select "Info" from the menu, and change the tooltypes. Example: "WIN=NEWCON:0/0/640/400/WORLD" uses a 640 by 400 NEWCON: window. This is for interlaced screens only. "WIN=CON:0/0/640/200/WORLD" uses a 640 by 200 CON: window. Use this if you don't have Workbench 1.3 yet, or if you prefer to use ConMan, or if you just don't want to use the NEWCON: device. To run from the CLI: -------------------- (Note: I use a stack of at least 10000 to run World. I seriously doubt that this is actually necessary, but since I didn't write World, I don't really know its stack requirements. It's never crashed on me with the default stack of 4000. I feel safer using a large stack, though.) Only the files World and q1text.dat are required. 1>run World [-n][-c][-i][-N] [datafile] Options: -n Uses a NEWCON: window so you can use the arrow keys to scroll through previous commands, correct typing errors, etc. This is the default. -c Uses a CON: window. Use this option if you do not have Workbench 1.3 installed, or if you prefer to use conman, or if you simply don't want to use NEWCON:. -i For an interlaced workbench screen. Opens a 640 by 400 window. -N For a non-interlaced workbench screen. Opens a 640 by 200 window. This is the default. datafile Optional. Default is q1text.dat. Included so that you can copy q1text.dat to ram: and specify ram:q1text.dat on the command line. Since World accesses q1text.dat throughout the game, this speeds up the game considerably. Porting: -------- Porting to the Amiga only required recompiling on the Amiga. To do the window and workbench stuff, the file 'wbstuff.c' was added, and a few lines were added to 'world.c' and a few to helper.c. Don't worry about the messages about things overriding library symbols. It's supposed to do that. The lines added to 'world.c' and 'helper.c' are enclosed in #ifdef AMIGA #endif so it can be easily moved to another computer. Simply don't include the file 'wbstuff.c' if you port it to another computer. Enjoy, Eric Kennedy ejkst@cisunx.edu 1520 James St. Monroeville, PA 15146 (412) 823-5165 original README follows... ------------------------------------------------------------------ This is the portable "C" version of my text adventure game "WORLD". It is a large game in the flavor of Adventure or Zork, and about as large. It is, however, a "sci-fi" type game somewhat like the commercial Infocom games "Planetfall" or "Starcross", but much larger. The code is written to be quite portable. However, it does make a few assumptions. These are: 1. Seven bit ASCII 2. short int is at least 16 bits 3. It MAY assume 2's complement arithmetic; I'm not sure. 4. the read and write IO routines have to work for a second argument which is a pointer to short If your computer doesn't conform to those requirements, the program "vtxtcn" and the routine "speak" in "helper.c" will most definately need to be rewritten. There may be other problems as well, particularly if your machine sets the high bit of a char. The program has been tested and compiles and runs properly on the following systems: 1) VAX/VMS Digital CC compiler. No particular tricks are needed. 2) IBM PC-AT Xenix 1.00. It seems to be necessary to use the large memory model, although I'm not sure why since it runs on the same machine under DOS in the small model. 3) IBM PC under Microsoft C version 4.00. It works in the default small memory model if you compile with the -Os switch. Note that on this setup you MUST link the main program World with binmode.obj, provided by Microsoft, for it to work right. Vtxtcn and vcnvrt must NOT be linked with binmode.obj. This compiler generates a few harmless warning messages. You may need to use EXEMOD to increase the stack size. 4) VAX/4.3bsd Unix. No particular tricks needed. Instructions for generating world: Once you have unpacked all the files, compile (and link if necessary) the preprocessor "vtxtcn.c". Then execute it. It will create a few .inc files and the run-time text base file "q1text.dat". Then compile, (link) and execute "vcnvrt.c". It will generate more .inc files. These .inc files generate the actual game data which is compiled into the final game program "world". The main program, which contains seven files world.c, demons.c, helper.c, motion.c, parser.c, verbs1.c and verbs2.c is then compiled and, if necessary on your machine, linked. See above for possible special switches or link files for your machine. Special handling probably is not necessary for un-segmented Unix machines. Edit the file helper.c to change the pathname for the data file (q1text.dat), if desired. The output of the above compilation process is the game program which should be named "world". It and "q1text.dat" are all that is necessary to run the game. The game generates save-position files called "world.sav". A note on the file q1text.dat: this file is written as an array of shorts, rather than chars. It is so arranged, however, that if it is in fact considered as bytes, there are absolutely linefeeds or carriagereturns sent to it. Thus on a record oriented machine like the VAX/VMS, it is a single record. On the IBM-PC/DOS, no conversion from lf to lf/cr or vice versa is ever required. Save files, on the other hand, may accidentally contain any control characters, so on a system like DOS in which the normal text mode does conversions of lf to lf/cr pairs you must use the special binary mode. None of these considerations should apply to Unix. Bugs: There are no known bugs. However, some are certain to show up if it is compiled on different machines, or if players exercise parts of the code I haven't frequently played with. Please send them to me. There are Fortran versions of this game for the VAX, PDP-11, IBM-PC, and Apple Macintosh which implement a niftier user interface than this version. They will appear eventually (but not in source code) on various bulletin boards. The Mac version features the full Mac interface. No claim is made to the effect that this program is an example of "good" programming practice, whatever that may be. In particular, anyone who can untangle the spaghetti in scan() will be awarded 8 assorted kazoos and 4 Bronx cheers. Please don't cheat by reading the text file! Cheating by reading the code is only slightly more cowardly! Doug Mcdonald Department of Chemistry University of Illinois Urbana Ill. 61801 address: mcdonald@uiucuxe SHAR_EOF cat << \SHAR_EOF > data.dat *THIS IS THE DATA TABLE FOR THE GAME *A STAR IN THE FIRST COLUMN IS A COMMENT *THE FIRST SECTION IS THE TRAVEL TABLE *THE SECOND SECTION IS THE LOCATION DATA *THE THIRD SECTION IS THE DATA ON MOVEABLE OBJECTS *THE FOURTH SECTION IS THE DATA ON FIXED OBJECTS *THE SECTIONS ARE SEPARATED BY 9999 IN THE FIRST FOUR COLUMNS *THE TRAVEL TABLE WORKS AS FOLLOWS: * IT APPLIES ONLY TO "GO" OR TO WORDS WHICH TRANSLATE TO GO, * SUCH AS RUN. IT DOES NOT APPLY TO SWIM OR JUMP OR CRAWL OR STAND * OR SIT. THESE ARE HANDLED BY SPECIAL CODE. *AN ENTEY BEGINNING IN COLUMN TWO IS A "FROM" LOCATION, *WHICH MUST OCCUR IN ORDER. *THE NEXT ENTRY *MAY BE BLANK OR C FOR CAREFULLY, S FOR SLOWLY, OR Q FOR QUICKLY *THE NEXT ENTRY IS A DIRECTION: N,NW,E,...NW,U,D OR BLANK * THESE TWO ARE COMBINED IN THE TABLE IN THE FORM: * C*16+S*32+Q*64+DIR (WHERE 1<=DIR<=10) *THE NEXT ENTRY INDICATES WHAT TYPE OF CONDITION: *1) MEANS NEXT IS LOCATION;UNCONDITIONAL MOTION *2) MEANS NEXT IS A MESSAGE NUMBER; STAY WHERE HE IS *3) MEANS NEXT IS VARIABLE FOR COMPUTED GOTO *4) MEANS HE DIED. NEXT IS THE MESSAGE. *5) MEANS HE MUST BE DEAD, AND HAVE BEEN THERE BEFORE. *6) IS SAME AS 2 EXCEPT 512 IS ADDED TO MESSAGE NUMBER *7-15 ARE UNUSED *16-31) MEANS NEXT IS NEWLOC;GO WITH (NUMBER-15)*6 % CHANCE * THESE TWO ARE COMBINED IN THE FORM 512*(FIRST WORD)+SECOND WORD *EACH LOC AND DIRECTION MAY HAVE SEVERAL POSSIBILITIES; THEY *ARE TAKEN IN ORDER UNTIL SOMETHING SUCEEDS OR THE END IS REACHED, *IN WHICH CASE NOTHING AT ALL HAPPENS. *IF A DIRECTION IS MISSING, HE GETS A "YOU CAN'T POSSIBLY GO THERE" *MESSAGE * 1 D 2 30 S 2 30 U 1 2 N 1 2 2 D 1 1 S 1 1 U 1 3 N 1 3 3 D 1 4 S 1 2 N 1 4 4 S 2 31 U 2 31 D 2 32 NW 1 5 NE 1 18 5 SE 1 4 N 1 19 W 5 6 W 2 47 NW 2 61 SW 2 61 6 S 1 7 E 5 5 E 2 47 7 N 1 8 S 1 6 E 1 10 W 1 7 8 N 1 11 S 28 9 S 1 12 E 1 7 W 22 9 W 1 12 9 N 1 10 S 1 12 E 1 11 W 24 9 W 1 8 10 N 1 7 S 1 10 E 1 9 W 1 15 11 N 1 9 S 1 12 E 1 8 W 1 11 12 D 1 11 E 1 9 U 3 1 U 2 33 13 D C 1 12 D 24 12 D 4 37 U C 1 14 U 24 14 U 4 37 14 D C 1 13 D 20 13 D 4 37 U 2 34 15 S 1 10 N 5 17 N 2 47 16 N 2 47 S 5 6 S 2 47 E 2 47 W 5 15 W 2 47 NE 2 47 SE 2 47 NW 2 47 SW 2 47 17 N 1 57 E 1 19 S 5 15 S 2 47 18 SW 1 4 NE 1 22 19 NE C 1 21 NE 5 21 NE 20 21 NE 4 38 W 23 17 W 2 36 SW 20 17 SW 25 5 SW 2 36 S 24 5 S 2 36 20 W 1 57 E 1 22 U 1 52 21 SW C 1 19 SW 5 19 SW 20 19 SW 4 38 E 1 26 22 N 1 20 S 1 18 E 1 23 23 E 1 24 W 1 22 24 W 1 23 E 3 2 E 2 118 25 W 1 24 E 1 98 26 SW 1 21 NE Q 1 27 NE 5 27 NE 2 130 27 SW Q 1 26 SW 5 26 SW 2 130 NE 1 46 E 1 28 28 W 1 27 NE 1 29 SE 1 30 29 W 1 28 E 1 37 S 1 31 N 1 45 30 W 1 28 E 1 31 S 3 3 S 2 129 31 N 1 29 W 1 30 NE 1 32 32 SW 1 31 N 1 37 SE 1 33 E 1 38 NE 1 38 33 NW 1 32 NE 1 34 N 1 38 34 SW 1 33 N 1 35 W 1 38 NW 1 38 35 S 1 34 NW 1 36 N 1 39 W 1 38 SW 1 38 36 SW 1 37 SE 1 35 S 1 38 37 W 1 29 S 1 32 NE 1 36 E 1 38 SE 1 38 38 N 5 36 N 2 131 NE 5 35 NE 2 131 E 5 35 E 2 131 SE 5 34 SE 2 131 S 5 33 S 2 131 SW 5 32 SW 2 131 W 5 37 W 2 131 NW 5 37 NW 2 131 U 5 35 U 2 131 39 S 1 35 W 1 40 40 E 1 39 NW 1 41 41 SE 1 40 SW 1 44 D 3 4 D 2 132 42 N 1 30 43 W 1 47 E 1 45 NE 1 44 44 S 1 45 SW 1 43 NE 1 41 NW 1 50 45 N 1 44 S 1 29 W 1 43 46 SW 1 27 N 1 47 47 S 1 46 E 1 43 NW 1 48 N 3 5 N 2 239 48 U 2 133 SE 1 47 49 D 1 48 50 SE 1 44 N Q 1 86 N 5 86 N 2 130 51 S 3 5 S 2 239 52 D 1 20 E 1 53 W 1 54 53 W 1 52 54 E 1 52 U 1 55 55 U 1 56 D 1 54 56 D 1 55 57 E 1 20 S 1 17 NW 1 58 58 SE 1 57 NW 1 62 D 1 59 59 U 1 58 NE 1 58 SW 1 60 60 NE 1 59 S 1 61 61 N 1 60 62 S 1 58 N Q 1 63 N 5 63 N 2 130 W 2 246 63 N 1 64 S Q 1 62 S 5 62 S 2 130 64 S 1 63 N 1 65 65 S 1 64 N 1 67 U 1 66 66 D 1 65 67 S 1 65 N 1 68 68 S 1 67 W 3 13 W 2 246 N 1 69 E 1 71 69 S 1 68 E 1 73 70 N 1 74 W 1 73 S 1 71 E 1 78 71 N 1 70 S 1 72 E 1 81 W 1 68 72 N 1 71 S 1 83 73 W 1 69 E 1 70 D 3 7 D 2 260 74 S 5 73 S 3 6 S 2 259 75 D 1 77 E 1 76 76 W 1 75 D 3 8 D 5 79 D 4 261 77 U 1 75 D 1 78 78 U 1 77 W 1 70 E 1 79 79 U 2 262 W 1 78 80 U 2 263 D 1 79 81 W 1 71 N 1 82 E 1 89 82 S 1 81 N 3 15 N 5 151 N 2 440 U 3 15 U 5 151 U 2 440 83 N 1 72 D 1 84 84 U 1 83 D 1 85 E 1 86 85 U 1 84 S 3 9 S 2 272 86 W 1 84 S Q 1 50 S 5 50 S 2 130 N 1 87 87 S 1 86 N 3 10 N 2 264 88 S 3 10 S 2 264 89 W 1 81 E 2 265 90 E 1 68 N 1 91 S 1 95 91 S 1 90 W 1 92 92 E 1 91 SW 1 93 93 NE 1 92 SE 1 94 94 NW 1 93 E 1 95 95 W 1 94 N 1 90 96 D 4 266 E 5 102 E 4 266 U 5 73 U 2 267 97 U 5 96 98 W 1 25 N 3 14 N 2 281 SE 1 117 99 S 1 108 100 U 1 115 101 N 1 107 E 1 116 W 1 108 D 1 103 102 S 1 96 W 1 102 SE 1 107 U 1 112 103 E 1 104 D 1 116 104 N 1 103 NW 1 105 U 1 107 105 S 1 114 SE 1 104 NW 1 110 106 S 1 108 W 1 106 U 1 116 107 NE 1 106 NW 1 101 U 1 102 108 N 1 99 W 1 101 NW 1 116 109 S 1 102 U 1 116 D 1 104 110 W 1 111 NE 1 117 D 1 110 111 N 1 103 E 1 110 SE 1 112 112 S 1 113 NW 1 111 U 1 112 113 N 1 112 SE 1 114 SW 1 130 114 S 1 105 U 1 115 D 1 114 115 N 1 116 W 1 114 D 1 100 116 S 1 104 NE 1 101 U 1 109 117 NW 1 98 N 1 118 E 1 101 118 S 1 117 N 1 119 NE 1 129 119 S 1 118 E 1 120 NW 1 119 SW 1 119 120 S 1 119 E 1 130 D 1 121 121 U 1 120 D 1 122 SE 1 122 122 W 1 121 U 1 121 123 U 5 121 U 2 269 SE 1 124 S 1 125 SW 1 126 124 NW 1 123 125 N 1 123 126 NE 1 123 D 1 127 U 1 128 127 U 2 270 128 U 2 271 D 1 129 129 SW 1 118 U 2 271 130 N 1 132 NE 1 113 SE 1 131 W 1 120 131 NW 1 130 132 S 1 130 133 W 1 139 S 1 134 E 1 135 134 N 1 133 135 W 1 133 E 3 11 E 2 272 136 N 3 12 N 2 272 S 1 137 137 N 1 136 S 1 138 W 1 143 E 1 147 138 N 1 137 S 1 139 W 1 144 E 1 148 139 N 1 138 E 1 133 S 1 140 140 N 1 139 S 1 141 W 1 145 E 1 149 141 N 1 140 S 1 142 W 1 146 E 1 150 142 N 1 141 S 5 98 S 3 14 S 2 281 143 E 1 137 144 E 1 138 145 E 1 140 146 E 1 141 147 W 1 137 148 W 1 138 149 W 1 140 150 W 1 141 151 D 1 82 N 1 152 152 S 1 151 153 D 1 154 154 U 1 153 N 1 155 NE 1 156 E 1 157 SE 1 158 S 1 159 SW 1 160 W 1 161 NW 1 162 155 S 1 154 E 1 156 SE 1 157 SW 1 161 W 1 162 N 1 163 156 W 1 155 SW 1 154 S 1 157 157 N 1 156 NW 1 155 W 1 154 SW 1 159 S 1 158 E 1 167 158 N 1 157 NW 1 154 W 1 159 159 NE 1 157 E 1 158 N 1 154 NW 1 161 W 1 160 S 1 172 160 E 1 159 NE 1 154 N 1 161 161 SE 1 159 E 1 154 S 1 160 NE 1 155 N 1 162 W 1 164 162 S 1 161 SE 1 154 E 1 155 163 S 1 155 W 1 165 164 E 1 161 N 1 165 165 E 1 163 S 1 164 NW 3 16 NW 2 239 166 SE 3 16 SE 2 239 167 W 1 157 E 1 168 S 1 169 168 W 1 167 169 N 1 167 E 1 171 S 3 18 S 2 58 170 N 1 169 W 1 174 171 W 1 169 E 4 498 S 4 498 N 4 498 172 N 1 159 S 1 173 173 S 2 239 N 1 172 174 N 2 239 S 3 17 S 2 239 E 1 170 175 N 3 17 N 2 239 176 N 2 272 177 N 2 272 178 N 2 272 179 N 2 272 180 N 2 272 181 N 3 17 N 2 239 182 S 1 181 N 1 183 183 S 1 182 184 N 3 17 N 2 239 185 N 1 186 S 1 184 186 S 1 185 187 N 3 17 N 2 239 188 S 1 187 N 1 189 189 S 1 188 N 2 499 W 1 190 190 E 2 499 9999 *LOCATION DATA *BITS ARE: 1)LIGHT ALWAYS * 2)DARK ALWAYS (NEEDS LAMP) * 4)HAS LIGHTS * 8)OUTDOORS * 16)LIGHTS ARE ON * 32)ADVENTURER CAN ENTER ROOM * 64,128,256,512)OTHER PLAYES CAN ENTER * 1024)THERE IS WATER HERE * 2048)THERE ARE OAKS HERE * 16384)HAS BEEN VISITED 0001 16424 0002 40 0003 40 0004 2088 0005 3112 0006 3112 0007 2088 0008 2088 0009 2088 0010 2088 0011 2088 0012 2088 0013 40 0014 40 0015 3112 0016 3112 0017 3112 0018 40 0019 2088 0020 1064 0021 40 0022 1064 0023 1064 0024 1064 0025 33 0026 40 0027 40 0028 40 0029 40 0030 40 0031 40 0032 40 0033 40 0034 40 0035 40 0036 40 0037 40 0038 40 0039 40 0040 40 0041 40 0042 40 0043 40 0044 40 0045 40 0046 40 0047 40 0048 40 0049 40 0050 40 0051 33 0052 40 0053 40 0054 40 0055 40 0056 40 0057 3112 0058 1064 0059 1064 0060 1064 0061 1064 0062 40 0063 40 0064 40 0065 104 0066 40 0067 104 0068 104 0069 104 0070 104 0071 104 0072 104 0073 40 0074 104 0075 40 0076 40 0077 40 0078 104 0079 40 0080 40 0081 40 0082 40 0083 40 0084 33 0085 33 0086 40 0087 40 0088 40 0089 40 0090 65 0091 65 0092 65 0093 65 0094 65 0095 65 0096 34 0097 34 0098 33 0099 33 0100 33 0101 34 0102 34 0103 34 0104 34 0105 34 0106 34 0107 34 0108 34 0109 34 0110 34 0111 34 0112 34 0113 34 0114 34 0115 34 0116 34 0117 34 0118 34 0119 34 0120 34 0121 34 0122 1062 0123 1062 0124 1062 0125 1062 0126 1062 0127 1062 0128 34 0129 34 0130 34 0131 33 0132 33 0133 33 0134 33 0135 33 0136 33 0137 33 0138 33 0139 33 0140 33 0141 33 0142 33 0143 1076 0144 36 0145 36 0146 33 0147 36 0148 36 0149 52 0150 36 0151 40 0152 40 0153 33 0154 33 0155 33 0156 33 0157 33 0158 33 0159 33 0160 33 0161 33 0162 33 0163 33 0164 33 0165 33 0166 33 0167 33 0168 33 0169 33 0170 33 0171 33 0172 33 0173 33 0174 33 0175 33 0176 33 0177 33 0178 33 0179 33 0180 33 0181 33 0182 33 0183 1057 0184 33 0185 33 0186 33 0187 33 0188 33 0189 33 0190 33 9999 *THE PROPERTIES OF OBJECTS IS DESCRIBED HERE *THE PROPERTIES OF ALL MOVEABLE OBJECTS IS DESCRIBED BEFORE *THOSE OF FIXED OBJECTS. *THE PROPERTIES ARE: *1) THE NOUN *2) THE ADJECTIVE, MINUS IF OPTIONAL *3) WEIGHT*256+SIZE IF MOVEABLE LOCATION IF FIXED * THE ITEMS ABOVE AND BELOW ARE SPLIT IN TWO ON THE CHART *4) VALUE*4096+LOCATION FOR ALL POINTS (FLOC) IF MOVEABLE * A LOCATION >=4000 IMPLIES THAT CREDIT IS GIVEN IF THE * LOCATION OF THE OBJECT IN NOT LOCATION-4000 * ;LOCAT #2 IF FIXED *5) FIXED ("PURE") PROPERTY WORD. BITS ARE: * 1)CAN BE CLOSED (I.E. PPRP) * 2)DRINKABLE * 4)FOOD * 8)POISON * 16)READABLE * 32)SENTIENT * 64)WEARABLE * 128)OPAQUE * 256)PLURAL * 512)LOCKABLE * 2048*M 0<M<16 CONTAINER VALUE (I.E.CVAL) *6) VARIABLE ("IMPURE") PROPERTY WORD (I.E. IMPRP) * 1)HAS BEEN SEEN (I.E. IF PREVIOUSLY HIDDEN) * 2)CURRENTLY CLOSED * 4)CURRENTLY LOCKED * +8*(INDEX TO DESCRIPTORS)+ 64*(RESPONSE TO EXAMINE OR READ) * +512*(CONTAINER DESCRIPTION, E.G. THE BOTTLE IS EMPTY) * +4096*(CURRENT SPECIAL PROPERTY) * SPECIAL PROPERTY 1 MEANS INCREMENT * INDEX TO DESCRIPTORS WHEN TAKEN *7) PRESENT ONLY FOR MOVEABLE OBJECTS, THE LOCATION (ILOC) * ZERO MEANS NONEXISTENT * 1 TO 500 MEANS A PLACE NUMBER * 1000 IS CARRIED BY ADVENTURER * 1001 IS CARRIED BY FIRST MOVEABLE BEING * 1002 IS CARRIED BY SECOND BEING ET. * 2001 MEANS INSIDE OBJECT NUMBER 1 * 2002 MEANS INSIDE OBJECT NUMBER 2 * 6001 MEANS INSIDE fixed OBJECT NUMBER 1 *NUM NOUN ADJ WT SIZE VAL FLOC PPRP IMPRP ILOC CVAL PARAM 0001 KEY -CHROME 1 1 2 4014 64 4105 14 0 CKEY 0002 SAPPHI -BLUE 1 1 1 1000 64 4105 18 0 BSAPPH 0003 FISH COLORF 2 2 3 2015 8 4297 16 0 CFISH 0004 FISH DEAD 2 2 1 2015 8 0 0 0 DFISH 0005 KNAPSA 0 20 100 0 1000 192 1673 3000 15 ZKNAPS 0006 SHIRT RED 3 4 0 0 64 9 3000 0 RSHIRT 0007 SHIRT GREEN 3 4 0 0 64 9 2005 0 GSHIRT 0008 BOOTS -HEAVY 20 5 0 0 320 137 3000 0 HBOOTS 0009 SHOES -CANVAS 10 5 0 0 320 137 2005 0 CSHOES 0010 PANTS BLUE 3 4 0 0 320 9 3000 0 LPANT 0011 PANTS BROWN 3 4 0 0 320 9 2005 0 RPANT 0012 NET -BUTTER 1 3 0 0 0 1033 2005 2 BNET 0013 TUBE -PLASTI 1 2 0 0 24 137 2005 0 BREPEL 0014 CAMERA -INSTAN 6 4 0 0 0 137 2005 0 ICAMER 0015 BAG -PLASTI 1 3 0 0 0 1673 2005 2 PLBAG 0016 FOSSIL -CRABLI 10 5 1 1000 64 4105 56 0 CFOSSI 0017 PHOTOG PTEROD 1 2 1 1000 0 137 0 0 PPHOTO 0018 PHOTOG MARTIA 1 2 1 1000 0 137 0 0 MPHOTO 0019 DIAMON -HUGE 6 5 2 1000 0 9 49 0 ZDIAMO 0020 PUCK -HOCKEY 10 3 2 1000 0 137 38 0 HPUCK 0021 BOULDE -RED 100 101 0 0 0 4097 27 0 RBOULD 0022 MOSS -GREEN 2 5 0 0 0 4225 19 0 GMOSS 0023 GLASS -GLASS 10 101 1 4000 0 137 0 0 PGLASS 0024 WIRE -WIRE 5 3 0 0 16 137 88 0 ZWIRE 0025 SPHERE -GLOWIN 14 4 2 4051 0 137 51 0 GSPHER 0026 LATEX -GOOEY 6 6 0 0 12 4361 66 0 ZLATEX 0027 CABLE BROKEN 2 2 0 0 0 4225 6023 0 DCABLE 0028 CABLE GOOD 2 2 0 0 0 137 148 0 GCABLE 0029 ORCHID 0 1 2 1 1000 0 4297 70 0 ZORCHI 0030 FLYTRA -VENUS 1 2 1 1000 0 4297 72 0 ZFLYTR 0031 CASSET -HUGE 2 9 0 0 0 137 149 0 ZCASSE 0032 PHOTOG OVEREX 1 2 0 0 0 137 0 0 OPHOTO 0033 TOMATO 0 2 4 0 0 12 137 73 0 ZTOMAT 0034 LETTUC 0 2 4 0 0 4 137 73 0 ZLETTU 0035 CABBAG 0 2 3 0 0 4 137 73 0 ZCABBA 0036 STRAWB 0 2 2 0 0 4 137 74 0 ZSTRAW 0037 GRAPE 0 2 2 0 0 4 4297 74 0 ZGRAPE 0038 SEED -BLACK 5 4 0 0 0 4297 86 0 ZSEED 0039 BUCKET 0 10 101 0 0 0 1545 149 13 ZBUCKE 0040 PITCHF 0 10 101 0 0 0 9 88 0 ZPITCH 0041 SHOVEL 0 10 101 0 0 0 9 88 0 ZSHOVE 0042 ROBOT 0 127 101 0 0 48 2249 70 0 ZROBOT 0043 STATUE 0 5 5 2 1000 0 137 99 0 ZSTATU 0044 MUSHRO -HUGE 1 3 0 0 4 9 118 0 ZMUSHR 0045 NUGGET -NUGGET 10 2 3 1000 0 9 128 0 ZNUGGE 0046 PHOTOG PAINTI 1 2 1 1000 0 137 0 0 APHOTO 0047 PHOTOG FAMILY 1 2 1 1000 0 137 0 0 FPHOTO 0048 CAT -BLACK 6 5 3 4080 0 4105 80 0 ZCAT 0049 DEET 0 2 2 0 0 8 137 147 0 ZDEET 0050 METOL 0 2 2 0 0 8 137 147 0 ZMETOL 0051 HYPO 0 2 2 0 0 8 137 147 0 ZHYPO 0052 CARTRI TERRAN 2 2 3 4000 0 137 0 0 ZCART 0053 KNIFE 0 3 3 0 0 0 9 150 0 ZKNIFE 0054 HAMMER 0 5 3 0 0 0 9 150 0 ZHAMME 0055 SCREWD 0 2 3 0 0 0 9 150 0 ZSCREW 0056 CARTRI CYGNAN 2 2 0 0 0 137 146 0 CCART 0057 BEAD -GLOWIN 2 4 1 4000 0 137 0 0 ZBEAD 0058 INSECT -SILICO 1 2 3 1000 0 201 94 0 ZINSEC 0059 FILM -XRAY 1 4 0 0 0 137 0 0 ZFILM 0060 BOX -MAGNES 3 5 0 0 129 1679 6032 5 ZBOX 0061 DISC GOOD 1 1 5 0 0 137 2060 0 GDISC 0062 DISC BROKEN 1 1 0 0 0 137 2060 0 BDISC 0063 MINERA -VIOLET 3 1 3 1000 0 137 152 0 LMINER 0064 EGG -CHOCOL 3 2 0 0 4 4105 0 0 CEGG 0065 COIN SILVER 2 2 2 1000 16 137 0 0 SCOIN 0066 COIN BRASS 2 2 0 0 16 137 0 0 BCOIN 0067 COIN NICKEL 2 2 0 0 16 137 0 0 NCOIN 0068 COIN COPPER 2 2 0 0 16 137 0 0 CCOIN 0069 COIN PLATIN 2 2 0 0 16 137 0 0 PCOIN 0070 MAP 0 2 2 0 0 16 137 0 0 MMAP 0071 BALL -RED 2 2 0 0 4 9 0 0 BBALL 0072 NEWSPA 0 2 2 0 0 16 137 0 0 NNEWS 0073 ROD -YELLOW 1 1 0 0 0 9 166 0 YROD 0074 NOTE 0 2 2 0 0 16 137 6071 0 NNOTE 9999 0001 SPIRE 0 12 13 0 129 0 ZSPIRE 0002 PTEROD -SMALL 24 0 0 65 0 ZPTERO 0003 STOOL -CERAMI 42 0 0 65 0 ZSTOOL 0004 KNOB -METAL 42 0 0 65 0 ZKNOB 0005 WINDOW 0 42 30 0 65 0 ZWINDO 0006 DOOR ROUND 47 51 513 207 0 RDOOR 0007 TOWER 0 48 0 0 1 0 ZTOWER 0008 DIMPLE -METAL 47 0 0 1 0 MDIMPL 0009 CUBE -STONE 61 0 16 65 0 SCUBE 0010 HORSET 0 24 25 256 65 0 ZHORSE 0011 DOOR METAL 41 135 513 15 0 MDOOR 0012 DOOR GLASS 85 136 513 15 0 GDOOR 0013 HOLE -RABBIT 73 0 0 9 0 RHOLE 0014 LOUVER 0 98 142 0 1 0 ZLOUVE 0015 VINE -GRAPE 74 0 0 9 0 ZVINE 0016 SLOT SLOT 146 0 0 513 2 RSLOT 0017 BUTTON TRIANG 146 0 0 1 0 TBUTTO 0018 BUTTON SQUARE 146 0 0 1 0 SBUTTO 0019 BUTTON ROUND 146 0 0 1 0 RBUTTO 0020 BUTTON HEXAGO 146 0 0 1 0 HBUTTO 0021 SCREEN -VIDEO 146 0 0 9 0 ZSCREE 0022 SINK 0 143 0 0 513 10 ZSINK 0023 ANTENN -MICROW 69 0 0 65 0 ZANTEN 0024 ENLARG -ENLARG 143 0 0 513 6 ZENLAR 0025 RACK -HUGE 143 0 0 1089 10 ZRACK 0026 TRAY -SMALL 143 0 0 513 5 ZTRAY 0027 HOPPER 0 143 0 0 513 5 ZHOPPE 0028 FUNNEL LEFT 143 0 0 1 3 LFUNNE 0029 FUNNEL MIDDLE 143 0 0 1 3 MFUNNE 0030 FUNNEL RIGHT 143 0 0 1 3 RFUNNE 0031 BUTTON RED 143 0 0 1 0 RDBUTT 0032 DESK 0 145 0 129 515 10 ZDESK 0033 INDICA -LEVEL 143 0 0 73 0 ZINDIC 0034 LIGHT RED 143 0 0 73 0 RLIGHT 0035 LIGHT GREEN 143 0 0 73 0 GLIGHT 0036 ACID -ACID 91 0 0 513 15 ZACID 0037 PIT -FIERY 94 0 0 1 15 FPIT 0038 MUD -SULFUR 95 0 0 1 15 ZMUD 0039 BUTTON VIOLET 134 0 0 1 0 VBUTTO 0040 BUTTON ORANGE 134 0 0 1 0 OBUTTO 0041 BUTTON WHITE 134 0 0 1 0 WBUTTO 0042 BUTTON BLUE 134 0 0 1 0 BBUTTO 0043 RECESS 0 134 0 0 513 2 ZRECES 0044 VAPOR RED 93 0 0 513 15 RVAPOR 0045 VAPOR GREEN 93 0 0 513 15 GVAPOR 0046 FROG -GREEN 67 0 0 65 0 ZFROG 0047 BIRD RED 65 66 0 65 0 RBIRD 0048 BIRD BEAUTI 78 79 0 65 0 XBIRD 0049 BIRD BEAUTI 77 80 0 65 0 YBIRD 0050 BIRD BEAUTI 75 76 0 65 0 ZBIRD 0051 BEES 0 87 0 0 1 0 ZBEES 0052 CACTUS 0 82 0 0 1 0 ZCACTU 0053 HOUSE -DOLL 132 0 0 65 0 DHOUSE 0054 WATERF 0 24 0 0 65 0 FALLS 0055 MACHIN VENDIN 156 0 16 137 0 TMACH 0056 SLOT SLOT 156 0 0 1 0 TSLOT 0057 MACHIN VENDIN 158 0 16 137 0 NMACH 0058 SLOT SLOT 158 0 0 1 0 NSLOT 0059 MACHIN VENDIN 160 0 16 137 0 SMACH 0060 SLOT SLOT 160 0 0 1 0 SSLOT 0061 MACHIN VENDIN 162 0 16 137 0 MMACH 0062 SLOT SLOT 162 0 0 1 0 MSLOT 0063 MACHIN HUGE 153 0 0 65 0 PMACH 0064 DOOR ORANGE 165 166 513 15 0 ODOOR 0065 DOOR PINK 173 174 513 15 0 PDOOR 0066 DOOR BLUE 174 175 1 11 0 BDOOR 0067 CLIP ORANGE 166 0 0 513 2 OCLIP 0068 CLIP VIOLET 166 0 0 513 2 VCLIP 0069 CLIP YELLOW 175 0 0 513 2 YCLIP 0070 CLIP BLUE 175 0 0 513 2 BCLIP 0071 CABINE -FILEC 169 0 129 515 12 FCABIN 0072 BUTTON GREEN 169 0 0 1 0 GBUTTO 0073 MURAL -HUGE 169 0 0 201 0 HMURAL 0074 RED GREEN 1 0 0 0 0 WDUMMX 9999 SHAR_EOF cat << \SHAR_EOF > vocab.dat *THIS FILE CONTAINS THE VOCABULARY DATA FOR THE GAME *IT IS CONVERTED INTO FORTRAN CODE BY THE PROGRAM 'VCONVRT' *A * IN THE FIRST COLUMN IS A COMMENT *A + IN THE FIRST COLUMN MEANS THAT THE CURRENT WORD IS A SYNONYM * OF THE PREVIOUS WORD. *A NUMBER IN THE FIRST COLUMN INDICATES THE START OF A NEW SECTION 0 *BUZZWORDS: TOTALLY IGNORED IN PROCESSING,EXCEPT FOR "OF" IN ONE CASE A ZZA AN ZZAN THE ZZTHE OF 1 *ADVERBS QUICKLY +RAPIDLY SLOWLY CAREFULLY +CAUTIOUSLY QUIETLY +SOFTLY TWICE WHERE WHAT 2 *THE VERBS ARE FOLLOWED BY TWO WORDS IN **BINARY** WHICH INDICATE THEIR *SYNTAX WITH OBJECTS AND PREPOSITIONS *THE FIRST WORD TELLS WHETHER THE VERB TAKE A DIRECT OBJECT WITH A *PARTICULAR PREPOSITION (I.E. SIT IN THE CHAIR). THE PREPOSITIONS *ARE, IN ORDER (THE RIGHTMOST IS BIT 0) FOR,THROUGH,OVER,BEHIND,UNDER,OFF, * FROM,TO,AT,WITH,ON,OUT,IN,DOWN,UP *THE SECOND WORD TELLS WHETHER THE VERB TAKES INDIRECT (I.E. SECOND) OBJECTS *WITH THE SAME PREPOSITIONS (E.G. DROP THE CARD IN THE SLOT). *THIS IS FOLLOWED BY A BYTE IN BINARY WHICH TELLS FROM HIGH TO LOW BIT *LEFT TO RIGHT WHETHER: *BIT 0: THE D.O. PREPOSITION MAY FOLLOW THE D.O.:: TURN THE LIGHTS OFF. *BIT 1: TAKES "DOWN" LIKE AN OBJECT:: SIT DOWN *BIT 2: TAKES "UP" LIKE AN OBJECT:: GET UP *BIT 3: TAKES I.O. WITH NO PREPOSITION:: GIVE THE FROG A BATH (FROG IS I.O.) *BIT 4: TAKES D.O. WITH NO PREPOSITION:: KISS THE FROG (FROG IS D.O.) *BIT 5: TAKES MULTIPLE D.O.'S *BIT 6: REQUIRES AN I.O. *BIT 7: REQUIRES A D.O. * * * THE SAME WORD CAN BE BOTH A NOUN AND A VERB * BUT ONE OR THE OTHER SHOULD HAVE A SPECIAL SYMBOL IN * COLUMN 60. THE VERB'S SPECIAL SYMBOL CAN'T START IN "V" * AND THE NOUN'S SHOULDN'T START IN "Z" *VERBS RUN 010000110001111 000000000000000 00010110 +RUSH CRAWL 011110110001111 000000000000000 00010110 +SLITHER JUMP 011001010010000 000000000000000 00000000 CLIMB 011000000011111 000000000000000 00010110 ASCEND 000000000000000 000000000000000 00010000 DESCEND 000000000000000 000000000000000 00010000 SWIM 000000010000100 000000000000000 10010110 CROSS 001000000000000 000000000010000 00010000 GO 010110110001111 000000000000000 00010110 +PROCEED +WALK +TRAVEL TAKE 000001000000000 000000100100000 10110001 +CATCH CARRY 000000000000000 000000000000000 10110000 REMOVE 000000000000000 000000100000000 10010000 +UNTIE +DETACH DROP 000000000000000 010111000010100 10110000 HOLD 000000000000000 000000000000000 10010000 FREEZE 000000000000000 000000000000000 10010000 SIT 000110000010100 000000000000000 00000010 +LIE STAND 000000000010000 000000000000000 00000100 GET 000001000010001 000000100000000 00110100 ASK 000000000000000 000000000000000 00000000 TELL 000000000000000 000000000000000 00000000 OPEN 000000000000000 000000000100000 10010000 SHUT 000001000000000 000000000000000 10010001 +CLOSE POUR 000000000000000 000110000010100 10010000 EAT 000000000000000 000000000000000 10010000 DRINK 000000000000000 000000000000000 10010000 WASH 000000000000000 000000000000000 10010000 THROW 000000000000000 011000011001100 10011000 +TOSS FEED 000000000000000 000000010000000 11011000 FILL 000000000000001 000000000100001 10010001 IGNITE 000000000000000 000000000100000 10010000 +BURN TURN 001001000010000 000000010100000 10010001 +SET READ 000000000000000 000000010000000 10010000 BREAK 000000000000000 000000000100000 10010000 +SMASH ATTACH 000000000000000 000000010000000 11010000 +TIE +FASTEN SCRATCH 000000000000000 000000000100000 10010000 +CUT PICK 000000000000001 000000000100000 10010001 WEAR 000000000000000 000000000000000 10110000 PUT 000000000010010 000110000010100 10110001 +PLACE +INSERT LOCK 000000000000000 000000000100000 10010000 UNLOCK 000000000000000 000000000100000 10010000 LOOK 111110101011100 000000000000000 10010110 EXAMINE 000000000000000 000000000100000 10010000 YELL 000000000000000 000000000000000 00000000 +SCREAM +SHOUT +SAY PUSH 000000000000000 011111010100000 10010000 +PRESS +TOUCH PUNCH 000000000000000 000000000100000 10010000 +HIT +KICK DIG 000000000100000 000000000000000 00000000 ATTACK 000000000000000 000000000100000 10010000 +KILL +SLAY +INJURE +FIGHT +MURDER GIVE 000000000000000 000000010000000 11011000 +HAND +DONATE WATER 000000000000000 000000000000000 10010000 QWATER IS 000000000000000 000110000011100 10010000 KISS 000000000000000 000000000000000 10010000 TRANSLATE 000000000000000 000000000000000 10010000 *THE NEXT FOUR WORDS COUNT AS BEING DIRTY FUCK 000000000000000 000000000000000 00010000 PISS 000000000010000 000000000000000 00000000 *ALL THE VERBS BELOW HERE ARE SINGLE WORDS ONLY SHIT DAMN MORE QMORE NOMORE QUIT SUSPEND +SAVE RESTORE BRIEF VERBOSE SUPERBRIE SCORE HELP RETREAT +BACK +B INVENTORY +I LOCATE +L PRAY LAND ACTIVATE DEBUG SHOOT EXHALE WAIT +NULL +X AGAIN +G 3 *ADJECTIVES RED BLUE GREEN YELLOW ORANGE VIOLET +PURPLE BROWN +TAN BLACK WHITE PINK SILVER PLATINUM BRASS COPPER NICKEL HEAVY COLORFUL BEAUTIFUL RUBBER GOOEY CANVAS BUTTERFLY CHROME INSTANT CRABLIKE CHOCOLATE PLASTIC BROKEN +DAMAGED +BAD GOOD DOLL POTTED VENUS OVEREXPOSED FLYING FIERY +FIRE VENTILATION FALLEN HOCKEY ROUND CERAMIC METAL MAGNESIUM HUGE +GIANT +LARGE +BIG MEDIUM DEAD FILE FILEC SMALL +TINY GLOWING STONE SILICON LITHIUM TRIANGULA HEXAGONAL SQUARE LEFT RIGHT MIDDLE +CENTER LEVEL XRAY MICROWAVE RABBIT FIRST SECOND THIRD FOURTH TERRAN +ENGLISH +GVIIZM CYGNAN +XBTMZM VIDEO SULFUROUS VENDING 4 *NOUNS *THE FIRST EIGHT MUST BE DIRECTIONS NORTH +N NORTHEAST +NE EAST +E SOUTHEAST +SE SOUTH +S SOUTHWEST +SW WEST +W NORTHWEST +NW LAMP +LANTERN KNAPSACK +BACKPACK +PACK +SACK SHIT NSHIT PISS NPISS ME SPIRE WATER LOCK NLOCK KEYHOLE TOWER STOOLS ISLAND SHORE BARRIER BOWL +BOWLS BUILDING +BAR WINDOW GLASS +PLATE WIRE HORSETAIL PTERODACT WATERFALL +FALLS TREE LOG +TRUNK CHASM * THE WORDS BETWEEN ROBOT AND FERRET REPRESENT SENTIENT BEINGS ROBOT MARTIAN +MARTIANS CACTUS GUARD GUARDS +REPTILE FERRET +FERRETS ALL +EVERYTHIN SCREWDRIV KNIFE HAMMER ORCHID +ORCHIDS FAUCET SINK LOUVER BUCKET PITCHFORK SHOVEL PLANET POLE TOMATO +TOMATOS LETTUCE CABBAGE +CABBAGES STRAWBERR GRAPE +GRAPES CATWALK DECLINATI RA HOPPER OPENING BENCH CHAIR TUNNEL TELESCOPE MAP NEWSPAPER +PAPER NOTE ACID +FLOW DEET +WVVG METOL +NVGLO HYPO +SBKL CHEMICALS +XSVNRXZOH DARKROOM +WZIPILLN DIRECTOR +WRIVXGLI CONTROL +XLMGILO STORAGE +HGLIRTV *WORDS BEFORE THIS CANNOT HAVE ADJECTIVES SAPPHIRE DIAMOND KEY FISH SHIRT BOOTS SHOES PANTS NET TUBE CAMERA PHOTOGRAP +PHOTO +PICTURE KNOB COMBINATI DIMPLE STOOL BAG FOSSIL MOSS PUCK BOULDER +ROCK GRAVEL +SCREE SPHERE CUBE +MONUMENT +INSCRIPTI CAT BIRD +BIRDS FROG +FROGS VINE +VINES LATEX ANTENNA CABLE COIN EGG HOUSE HOLE +HOLES RECESS DOOR REPELLENT FLYTRAP +FLYTRAPS SEED STATUE FAMILY BEES +BEE +BEEHIVE +HIVE SHRUB +SHRUBS DISK VAPOR +VENT PIT MUD STATUS PAINTING +DESIGN +DESIGNS +PAINTINGS MUSHROOM +MUSHROOMS POOL NUGGET +GOLD MINERAL +CRYSTAL BUTTON SLOT CASSETE +CASSETTE CARTRIDGE DISC +DISK MACHINE DESK CABINET ROD BOX DIAL +DIALS CARD BEAD +BEADS SCREEN INSECT FILM ENLARGER +BASE RACK TRAY FUNNEL LIGHT +LIGHTS INDICATOR BALL +PILL +CANDY CLIP MURAL 5 *PREPOSITIONS *THE FIRST TWO MUST BE UP AND DOWN UP +U DOWN +D IN +INTO +INSIDE OUT +OUTSIDE ON +ONTO +UPON WITH +USING AT TO FROM OFF UNDER BEHIND OVER +ACROSS THROUGH FOR BUT +EXCEPT AND 6 *THIS IS THE END SHAR_EOF # End of shell archive exit 0 -- Bob Page, U of Lowell CS Dept. page@swan.ulowell.edu ulowell!page Have five nice days.