"NNJET for BUREAUCRACY: Copyright 1987 Infocom, Inc. All rights reserved." "There are three scenarios. The first two that are played out turn out to be dreams, as you discover when you wake up just before crashing into the ground because your parachute didn't work. The third is real, and in that one, assuming winnage, your parachute works and you land in the stew. The scenarios are: 1) Hijacking. The plane is hijacked by someone who decides to escape with a randomly-chosen hostage, namely you. Why? Who knows. If you do the wrong thing, you get blown away (of course, in the dream sequence you just wake up). Maybe the airplane too. 2) Bad breath. You foolishly eat your airline food. Failure to do so gets you thrown off for being rude to the chef. If you do, you develop severe halitosis, forcing you to go brush your teeth; failure to do so gets you thrown off for being a chomper. When you brush your teeth, you can either clean out the sink (per the sign), in which case you're delayed past the seat-belt and return-to-seat signs coming on; you get thrown off for not obeying that. Otherwise, you get thrown off for not cleaning out the sink. 3) Visa. You're required to fill out some entrance form, with a visa number that you don't have and can't get. Failure to do so results in ejection." ; "Actually move the cretinous player onto the plane..." )> ; "Put smoker/non-smoker in next seat." T> ) ( > ) ( > ) (> ; "Not on the plane" T) ( T) (T <>)>> "Basic airplane stuff. Aisle to move around in, seats to sit in, etc." ; "Generic AISLE room..." ) (NEWVAL <>)) ,ROW-SEEN-BIT>>> T) (T <>)>) (T ,ROW-SEEN-BIT>) (T >)>>)>> )> ,STARBOARD-DIVISOR> *17*>) (T <* .NEW ,STARBOARD-DIVISOR>>>)>> )> ,PORT-DIVISOR> *17*>) (T >>)>> )> )> .N> ;>>> ; "Starboard side" ) (T )>)>> > ,ALL-SEATS>> > ,ALL-SEATS> ) (<0? .SEAT-MASK> ) (T > > > >) ( > >>>> >) (T .FF? T) (T <>)>>)> > > 4> )>>)> ) (<==? .RARG ,M-BEG> ,ALL-SEATS>> >>> )>> T) (T <>)>) ( <>) ( > > ,M-EXIT>>> )> )> )> > T) ( ) ( T) ( T) ( T) (T <>)>) (T <>)>> ) (T )> " and " CHAR >> " are " .TAILSTRING> ) (T )>> )>> ) "AUX" (NEW-ROW ) (NEW-SEAT )) <==? .NEW-ROW ,CURRENT-ROW> <==? .NEW-SEAT ,CURRENT-SEAT>> T) (T <>)>) ( <>) ( > <>) (T T)>) (T <>)>> "OPT" (ROW: <>)) )> )> .SEAT> ;>>> T) (T <>)>> FF? "OPT" (LAST? <>) "AUX" PERS) >> ) (T )>) (T )> ) (T )>> %) (<==? .N ,SEAT-B> %) (<==? .N ,SEAT-C> %) (<==? .N ,SEAT-D> %)>> )) ) (T )> >> > "Wander the aisle. Front goes to Galley, back goes to area outside lavatory." )) ,GALLEY>> )>> ,GALLEY) (T > > )> > ,AISLE)>) (<==? ,P-WALK-DIR ,P?SOUTH> ,LAV-LOBBY) (T > > )> > ,AISLE)>)>> >> >)> > ; "North is forward, so east is to C & D" ) (T )> > > > <>) (> <>) ( ,SEAT) ( ,SEAT)>> ; "Miscellany around the seat." <>) ( T) (T T)>) ( T) (T )>)>> )) )>) ( <>) ( )>)>> )>> )>> ) (T )> T) (T <>)>> > >) (T CHAR >>)>> <>) ( T) (T T)>> <==? ,P-WALK-DIR ,P?WEST>> <==? ,P-WALK-DIR ,P?EAST>> <==? ,P-WALK-DIR ,P?OUT>> ; "Move into the aisle" ,AISLE) ( <==? ,CURRENT-SEAT ,SEAT-D>> <>) (T >>) (T >>)> > ) (T )> <>) (T ,SEAT)>)>> > ".\"" CR> T) (T <>)>> ; "The seat itself" > >> T) (T <>)>> ) "AUX" (NEW-ROW ) (NEW-SEAT )) " on your unbelievably luxurious Air Zalagasa flight to wherever it is you're going." CR> > ) (T )> )> > > )> )> T) (<==? .CONTEXT ,M-BEG> > ) ( > T) (T <>)>) (<==? .CONTEXT ,M-EXIT> T) (T )>)>) ( <>) (> ) ( )> T) ( > ) (T )>)>) ( T) ( > ) (T T)>) ( ,M-EXIT>>> )> <==? ,CURRENT-ROW .NEW-ROW> <==? ,CURRENT-SEAT .NEW-SEAT>> ) ( ) ( ) (T )> )>) (T )> > )> T) ( <==? .NEW-ROW ,CURRENT-ROW>> ) ( 0> >)> ) (T )>) (> T) ( ) (T )>) ( ) (T )>)>> )> > > )> > >> >>> )>)>> > > )) > <==? ,CURRENT-SEAT > > ; "Just returned to previous seat, so OK" T) (T > > )> > )> >> 0> "! Please don't let it happen again.\"" CR CR> )>)>)>> )) "Ma'am") (T "Sir")>) (,SEX "ma'am") (T "sir")>> "Get personal belongings out of seat, and give them to steward for return." ) "AUX" NOBJ LEN (N 0)) > > >)> >> > > > )> ) (T >)> )>>)> .N> > ; "Make sure we've got a good seat number, and set things up so the parser will like it." >> ) (NMLEN )) > > )>)>)> > T) (T <>)>) (T <>)>) (T <>)>) (T <>)>> ) (NMLEN ) TAB) > <>) ( ,LAV-LOBBY) (> 2>> 2>>> ,LAVATORY) ( ; "Random person/object" ) (VEC ) (COULD-BE-PERSON? <>) TMP (WIN? <>) ONAM) > ; "Kludged due to compiler bug" <==? .ADJ >> <==? .NAM .ONAM>> )>)> <==? .NAM .ONAM>> )>)> > ,OBJECT-BREAK> ) ( > ) ( >> ; "Don't recognize any of these guys except when they're actually present." ) (T )> ) (T ; "Allow search to continue, since there may be other matches later in the vector." )>)> > 3> )> .MATCH>)> > >>) ( > <==? .ADJ ,W?INTNUM> > ) (T >)> )> ,SEAT-A) (<==? .NAM ,W?C> ,SEAT-B) (<==? .NAM ,W?D> ,SEAT-C) (<==? .NAM ,W?E> ,SEAT-D)>> ,SEAT)>) ( > > >)> ,SEAT) ( <==? .NAM ,W?INTNUM>> > ,FATAL-VALUE) (T ,AISLE)>) ( > 1>> >> > ,FATAL-VALUE) (T ,SEAT)>)>> ;"Object for useless random objects on the airplane: the escape hatch, etc." > > > > > > > > > )) ) (<==? .WHICH ,HATCH-OBJECT> ) (<==? .WHICH ,FORM-OBJECT> ) (<==? .WHICH ,GRANDCHILDREN-OBJECT> ) (<==? .WHICH ,MEAL-OBJECT> ) (<==? .WHICH ,VISA-NUMBER-OBJECT> ) (<==? .WHICH ,COMPUTER-OBJECT> ) (<==? .WHICH ,BABY-OBJECT> ) (<==? .WHICH ,MOVIE-OBJECT> ) (<==? .WHICH ,RECIPE-OBJECT> )>> T) (T <>)>> ) "AUX" (WHICH ) STR) > <>) (> <==? ,VISA-SCENE>> <>) (T )>) (<==? .WHICH ,VISA-NUMBER-OBJECT> ) ( <>) (> >> ) ( <>) ( > ) (T )>)>) (<==? .WHICH ,HATCH-OBJECT> ) ( <>) (> "the hatch">) ( <>) ( T) ( ) (T T)>) ( T) ( T) (T T)>) ( ) ( <==? ,HERE ,OUTSIDE-PLANE>> T) (T <>)>) (<==? .WHICH ,MOVIE-OBJECT> > ) ( <>) ( ) ( > > ) (T )>)>) (<==? .WHICH ,BABY-OBJECT> > ) ( ,MOMMA-PERSON> ) ( ) ( )>) ( <==? .WHICH ,RECIPE-OBJECT>> > ,BUSINESS-PERSON>> ) ( ) (T )> T) ( ) ( <==? ,BUSINESS-PERSON>> <>) (T )>) (T <>)>)>) (<==? .WHICH ,GRANDCHILDREN-OBJECT> > ) ( <==? ,PRSO ,RANDOM-PERSON> <==? ,GRANDMA-PERSON>> <>) (T )>)>> ,HATCH-OBJECT <> ,HATCH-OBJECT <> ,HATCH-OBJECT <> ,FORM-OBJECT ,FORM-OBJECT ,FORM-OBJECT ,FORM-OBJECT ,FORM-OBJECT ,VISA-NUMBER-OBJECT ,VISA-NUMBER-OBJECT ,VISA-NUMBER-OBJECT ,VISA-NUMBER-OBJECT ,VISA-NUMBER-OBJECT ,GRANDCHILDREN-OBJECT <> ,GRANDCHILDREN-OBJECT <> ,GRANDCHILDREN-OBJECT <> ,GRANDCHILDREN-OBJECT <> ,GRANDCHILDREN-OBJECT <> ,GRANDCHILDREN-OBJECT ,GRANDCHILDREN-OBJECT ,GRANDCHILDREN-OBJECT ,GRANDMA-PERSON <> ,GRANDMA-PERSON <> ,GRANDMA-PERSON ,COMPUTER-OBJECT ,COMPUTER-OBJECT ,COMPUTER-OBJECT ,COMPUTER-OBJECT ,COMPUTER-OBJECT <> ,COMPUTER-OBJECT ,BUSINESS-PERSON ,BUSINESS-PERSON <> ,BUSINESS-PERSON ,BABY-OBJECT ,BABY-OBJECT ,BABY-OBJECT ,MOMMA-PERSON <> ,MOMMA-PERSON ,MOMMA-PERSON <> ,MOMMA-PERSON ,MOVIE-OBJECT ,MOVIE-OBJECT ,SMOKER-PERSON ,SMOKER-PERSON <> ,SMOKER-PERSON ,PURSER-PERSON <> ,PURSER-PERSON>> > )) <>) (T <>)>> )) <>) (<==? .CONTEXT ,M-EXIT> <>) (T <>)>) (T <>)>> > >> ) (T )>> ) (T )>) (T 0 ,W?SPOTLESS> )>) ( > >> ) (T )>)>)>> > > T) (T <>)>> <>) (<==? .CONTEXT ,M-EXIT> ,FOOD-SCENE> 5> > >> ; "If cleaned sink, nail for not returning to seat." T) (T <>)>) (<==? .CONTEXT ,M-BEG> > ) (T )> T) ( > ) (T )> > T) ( T)>) ( <>) (> ) ( ) (T )> T)>)>)>> <>) ( T) ( ; "This will unlock the door, and check for waking up at the end of the food scene." T) (T T)>) (T <>)>) ( ) (T )>) ( ) (T )>) (T <>)>> > > )>)> .IB>> )) .LEN> ,RECEPTACLE) (T <>)>> > ) (T )> T) ( > ) (T )> T) ( T) (T <>)>) ( > ) (T )> T) ( T) (T <>)>> )) > )> <>) ( > > )> <>) ( ) (T )> T) ( <>) (> <>) (T >)> T)>) ( > > T) (T T)>) ( T) ( > T) ( T) (T <>)>> > ) (T > )> T> > T) (> T) (T T)>> > > 3> > > ,NUMBER-OF-TUNES> )> >> )>)> .PHONES>> )) >> )> ) (T ) (T )> ) (T )>)>> > >> ) ( ) ( ) ( )> ) (T )> > > )) > > >> ) (T )> ) ( ) (T )> ) ( > )> > ) "AUX" STR) > ) (T )> T) (<==? .CONTEXT ,M-WINNER> ) ( <>) ( > <>) (> ) ( >> ) ( T) (T <>)>) ( ,FATAL-VALUE) ( T) (T <>)>> ) (MALE <>)) >)> 0 .XFEMALE>)>) (T >)> 0 .MALE>)>)> > > ,W?STEWARDESS ,W?STEWARD> ) (T )>> > > "?\"" CR> > > ) (LEN )) > > > >> )>>> ; "Call if loser picked up a visa number from somebody. See if it's one of the ones he might have gotten; set GOT-VISA-NUMBER? to person he got it from." > <- ,FIELD-DATA-OFFSET 1>>> >> > )>)> > ,PERSON-COUNT> .CHECK>)>>> )"AUX" LOSERS-ROW) ) ( ) ( )>) ( <>) ( <>) ( > ) (T )>) (> > ) (T ", but I'm not authorized to say anything about that.\"">)>)>) ( > >> ; "Return T if direction of attendant approach and direction to loser we got this from match." ". Some people just aren't very helpful about these things.\"||"> > ) (T )> ,M-SHORTDESC> > ) (T ,M-SHORTDESC> ; "Winning case, when not dreaming" )> T) (T ", but I've already seen this number "> ) (T )> )>) ( ) (T )>)> T) (T <>)>)>)>) ( > ) ( <==? ,VISA-SCENE>> ) (T > )>) (T ,FATAL-VALUE) (T T)>)>> "Nightmares" ) "AUX" CS) > >> >> T>)> )> > > > > > <==? .SCENE ,HIJACK-SCENE>> ; "Don't do the computer scene first." T) (> )> > 20> > > <==? .SCENE ,HIJACK-SCENE>> T) (> )> > ,SCENE-COUNT> > )>> )>> > ; "Say it's used." ; "Save it" ; "Keep track of how many we've played." > >> ; "Unless it's the last one, it's just a dream." >) (T )> ; "Let 'er rip." > > 1>> <>>> )>> CHAR >>) (<==? ,HERE ,AISLE> ) ( ) (T >)> > ) (BLAME-COMPUTER? <>) (DREAMING? >)) ; "If loser didn't bring computer on board, throw off the businessman, who did, but only if dreaming. Otherwise, need some other excuse." > ; "Not in plausible location, so make him get there, and try later." .START-HIJACK>)> > .DREAMING?> )> > > )> ) (T )> ) (> ) (T )> ) (T )>) (.DREAMING? )>> T> > > > > )>> ; "Visa scene" > .IRTS>)> >)> > )> T> ) "AUX" (SJ? <>)) > <>) ( >> ) (T )> ". People who don't pay attention to our regulations can't be permitted to continue on the flight. Why, you could be hurt!\" " " looks thoughtful for an instant, and then reaches a decision" ,PCR> ; "You dead, Jack" <>) (T T)> .SJ?> T) (T T)>> > )) )>) ( <>) (T T)>> ;"meal-state: 1: meal has been served (always what the loser didn't want) 2: meal done (loser either mungs it or eats it). If doesn't happen within five moves, give warning. If eaten, go to state 4. 3: if meal still not eaten, throw loser off. Otherwise, to state 4. 4: bad breath noticed--neighbor looks slightly green, rings for stewardess, who produces toothbrush, suggests using it. 5: after enough moves to get to lavatory, if not there, throw off for having bad breath. 6: in lavatory, immediately run return-to-seat. 7: If don't wipe sink, throw off for that as soon as leaves seat; otherwise, too late on return to seat, throw off for that." > > )>) (> ; "Too late, loser" > )>) (T )> > )) 5>> <>) (T > >> > ; "Time to serve meal" "? The Chicken Kiev, or the Peking Duck?\"" CR> )) > ) ( >) (T )> ", we're all out of that. Would you like the "> ) (T )> >> ; "5 moves to eat it" ) (T ; "Naughty, naughty" )>>) ( <0? .Y>> ; "Counter ran out" > ; "Meal eaten" )> ; "Ready to offend neighbor" ) ( <>) (T "! We can't have this! Our chef would be mortally wounded if she discovered that one of her meals was wasted. Why not make it easy on yourself and eat the food? I'm told it's absolutely scrumptious.\"" CR " stands in the aisle, watching you." CR> ; "Now have two moves to eat the damn food, otherwise thrown off." )>) (<==? .X 3> > " takes your plate and hurries off." CR> ) (T ".\"" CR CR> ; "Tsk." )>) (<==? .X 4> ; "Anybody in neighborhood notices stench." > <>) (T T)>) (<==? .X 5> <>) (T ", but some of our passengers have noticed that you're suffering from halitosis. In fact, they suggest that they may be forced to use their discomfort bags if something isn't done about it.\" " " is starting to look a little green. \"I think it would be a very good idea for you to use this, before we have to take stronger measures.\"" CR CR " hurries off, leaving you holding " A ,TOOTHBRUSH ,PERIOD> >) (<==? ,HERE ,GALLEY> ) (T )>)>) (<==? .X 6> > <>) (T ", but we gave you every chance. For the sake of everyone's health, we're going to have to do something about this.\"" CR CR> ; "Die" )>)>) (<==? .X 7> >> ". You brushed your teeth in the lavatory, and left quite a mess in the sink. You're being most discourteous to your fellow passengers, " ". We can't tolerate this sort of behavior on a civilized airline.\" " " is now accompanied by a hefty young man who looks a little too eager for action" ,PCR> ; "Too bad" ) (> )> T) (T <>)>)>)>)>> T)>> )>)>> ) ( >> > ) (T )> 0 ,W?DIRTY> ) (T )>> )>) ( ) (T )>)>> > ) (T )> ", but we can't permit this to continue.\"" CR CR> ,FATAL-VALUE) ( ) (T )>) ( )>) ( )>)>> )> <>) (T T)>> > ; "Am I in the front of the airplane?" ; "Then the f.a. is headed back." <>) (T T)>) ( <>) (T T)>> ; "Get the loser back into a seat." 2> >) (T )> .I-VISA>)> > >> .I-VISA>) (<==? .X 10> > ) (T )> " hands you " A ,IFORM ", and walks away." CR> T) (<==? .X 9> > ; "Give people some leeway at this point" )> T) (<==? .X 8> > 0> >> .I-VISA>)> > ) (T )> T) (<==? .X 7> > 0> >> .I-VISA>)> T) (<==? .X 6> T) (T " hands your form back to you, while endeavoring to look mortally offended."> )> ",\" says " THE ,FLIGHT-ATTENDANT ", motioning to someone you can't see." CR> T) (<==? .X 1> T) ( > "! You haven't even started to fill out " THE ,IFORM ". "> ) (<==? 2> ) (T )> ) ( T) (<==? .X 3> ".\"" CR> T) (<==? .X 2> > T) (T T)>) (T T)>)>> T) (T <>)>) (<==? .CONTEXT ,FORM-EXIT-FIELD> ,FATAL-VALUE) ( ,FATAL-VALUE) (T T)>) (T T)>> T) (<==? .CONTEXT ,FORM-EXIT-FIELD> ,FATAL-VALUE) ( ,FATAL-VALUE) ( ,FATAL-VALUE) (T T)>) (T T)>> T) (T <>)>) (<==? .CONTEXT ,FORM-EXIT-FIELD> 4> <>) (T T)>) (T T)>> % %>> T) (T <>)>) (<==? .CONTEXT ,FORM-EXIT-FIELD> >> ) (T )> ,FATAL-VALUE) (T T)>) (T T)>> ) (<==? .CONTEXT ,FORM-EXIT-FIELD> >>) (T T)>> ) (<==? .CONTEXT ,FORM-EXIT-FIELD> >>) (T T)>> ) (<==? .CONTEXT ,FORM-EXIT-FIELD> >>) (T T)>> )) > >> <>) (T T)>> > > )> T) ( > ) (T )> T) ( T)>)>> ) (T )> > ) (STARTED-IN-JOHN? <>) "AUX" STR (DREAMING? ) (SHORT? )) > > > > )> )> > > ", but I'm afraid you'll have to leave us now.\" "> ,PLAYER .DREAMING?>> 0> )> )> ) (T ". If your future travel plans call for air travel to Zalagasa, we hope you'll think of us. Have a nice day!\"" CR>)> )> > > ) ( )>) ( > T) ( ) ( )> ) ( )> ) ( > > )> )>)> )> .CHUTE>) ( > ) ( ) ( )> )> T) ( T) (> ) ( T) ( T) ( ) (T )> T) (T <>)>> ) (T ) (T > > >> ) (T )>)>)> T> ) ( )> T> > T) ( <>) ( )> T) ( T) (T <>)>> T> T> ) (T )> T> )) )> T) (T <>)>> )) ) (T )> T) (T <>)>> > T) (T <>)>> "Code for other passengers" "Initialize state of seating: all rows are full, except for smoker/non-smoker rows, which we handle on boarding. Other four people are put randomly around plane, no more than one per row." > % % %> ; "grandma" % % % %> ; "Business person"
% % % %> ; "Momma"
% % %>>> > > > 1> > ) (T >)> ,ALL-SEATS> > ; "Seat to leave blank" ) (T )> > )> >> ; "Set up personality in seat next to blank seat" >)> )>>> > > >> >> >>)> > " " > " with " >>> > )) .N>> <==? .N>> T) (T <>)>> <==? .N>> T) (T <>)>> <==? ,PRSI ,IFORM> >> <==? ,PRSI ,AIRLINE-MEAL> >> > ) "AUX" (OWINNER ,WINNER) VAL) > .VAL> >)> ; "FOO, HELLO becomes HELLO FOO" T) ( > ) ( > ) ( T) ( > ; "FOO, GIVE ME BAR becomes TAKE BAR FROM FOO" ) ( > >> ) (T >)>)> T) ( ) (T <>)>) ( >)> )> ) (<==? .N ,GRANDMA-PERSON> )> ) (<==? .N ,BUSINESS-PERSON> ) (T )>) (<==? .N ,MOMMA-PERSON> ) (T )>)>) ( <>) ( > >)> T) ( > ) ( > ,FATAL-VALUE) (T <>)>) (<==? .N ,GRANDMA-PERSON> ) (<==? .N ,SMOKER-PERSON> ) (<==? .N ,BUSINESS-PERSON> ) (<==? .N ,MOMMA-PERSON> )>) (<==? .N ,GRANDMA-PERSON> ) (<==? .N ,SMOKER-PERSON> ) (<==? .N ,BUSINESS-PERSON> ) (<==? .N ,MOMMA-PERSON> )>> ) (T >)>> > ) (T )>) ( ) ( >> > )> ) ( ) (T )> ) ( ) (T )>) ( )>> > <>) ( T) (T <>)>> > > ) ( > )>) (> ) (T )>)>> > ; "boy touching..." > ) (T T)>) (T )>) ( ) ( > ) (T )>) ( >> > ) (T )>) (T )>) ( ) ( ) (T <>)>> > ) (T )> ) ( > ) (T )>)>> > ) (T )>) ( > ) (T )>) ( > ) (> ) (T )>) ( ) ( > ) ( > ) (T )>) ( ) (T )>) ( )>> > ) (T )>) ( )>> > )>) ( ) (T )>) ( )>> 8> )>> > ) (T )>) ( ) ( > ) (T )>) ( ) (T )>) ( )>> T) ( T) (T )>)>) ( ) ( ) ( T) (T )>)>>