zd : n  , : X$"Hong Kong Hustle, 1997" : x  , : X$"(c) David H. Ahl, 1986" :  , :  : X RN : RNRN1 : : RNa , : X$"(Initializing data -- please be patient)" :  PKGDES$(),PKSTNU(),PKGSTA(,),PKSTDS(,),LGPKG(),STAWLK() PLACE$(),STANU(),STATR(, ),TRAIN$(#),PICK(),STAWK(,)= TRSTOP(#),TRSTA(#,),TRDES$(#,),TRFREQ(#),TRT(#,),PN()nPS : STNS : TRNS" : BG : BGMAXBG 4 : :Read words f : :Read about pickups  : :Read data about stations  : :Read about transit routes# $ : STA : :Shuffle pickupsM , : <) " "; : , : x RN : RNRN1 : : RN :  "You may want to print or copy this screen for later reference.":  "Before setting out, you make a list of the various places to stop.","  : :Print pickup logs,   : "You set out from your home overlooking Repulse Bay and"6 "make your way down to the public bus stop." : h@:J:Arrive at place routineT   : :Display the time^ "You have arrived at " PLACE$(STA)Fh "Public transit that stops here:"]r I STANU(STA)| " " TRAIN$(STATR(STA,I)); : I :  PERS  : :If on foot, go to choice STATRSTA(TR,) STATRSTA(TR,TRSTOP(TR)) , "End of the line. You'll have to get off." : V "Do you want to get off";A$ :  A$"N"  : :If want to stay on, go to transit travel STA STA2  : :Put gold in sampan? PERS : "Do you want to:" : " Make a pickup (P)": " Take a bus, ferry, tram, etc. (T)"h " Walk to another transit stop (W)" " Check your log (C)" "Your choice please (P, T, W, or C)";A$  : A$"P"  : A$"T"  A$"W" j : A$"C"  : U "Not a valid choice, Enter P, T, W, or C please";A$ : ]:}:Transit arriving routine&   : :Display the time (again)0TRSTATR(STA,(STANU(STA)())) : STATRSTA(TR,) DES : X : :At one end of line?OD STATRSTA(TR,TRSTOP(TR)) DES : X : :or the other?NDES(()) : :Destination of next transit to arriveX "Here comes the " TRAIN$(TR) " to " TRDES$(TR,DES)bMINMINl "Do you want to get on";A$ : ?v A$"N" 0 : :If don't get on, wait for next transits I TRSTOP(TR) : :Find out where train is TRSTA(TR,I)STA I : "ERROR in station location"TRSTXI : :Transit station identification index! DES TRX : TRX : :Which way are we going?):?:Travel routinePERS : "You are on the " TRAIN$(TR) " to " TRDES$(TR,DES)  : :Possible trip hazards TRX MINMINTRT(TR,TRSTX) : MINMINTRT(TR,TRSTX)TRSTXTRSTXTRX : STATRSTA(TR,TRSTX)6 J : :Arrive at next location>:T:Pickup routine BGX  : :Maximum limit not set yet?  BAGBGX "You can't carry any more bags." : p "Which pickup do you want to make (by Logbook number)";A  PICK(A) H`* "That number seems to be in error. Want to check your logbook";A$}4  : A$"Y" >  : :Goto choice routineH "That pickup is at the " PKGDES$(A)R I PKSTNU(A)\ PKGSTA(A,I)STA z1 f I : "...which is too far to walk from here."h p "Perhaps you should try something else." :  z "which is about a" PKSTDS(A,I) "minute walk from here. Off you go." : :Successful pickup !  : MINMINPKSTDS(A,I)( ()) : BAGBAG : :Add to timej! "Your " FR$((())) " gives you the bag he has been holding"! "for you and wishes you good joss." : PICK(A)!:!:Check to see if you are overloaded" BAG  : :If carrying fewer than 3 bags then no problemM" BGX BGX(()) : :Set maximum bags" BAGBGX  : :Haven't reached load limit yet?" "That last bag was a heavy one. You can't carry any more. You'll"# "have to return to your sampan and unload." #:7#:Walk from pickup back to transit stopa#XPKSTNU(A) : X X$"" : X$"s"# : "From here you can walk to the following transit stop" X$ ":"#$ X MINMINPKSTDS(A,) : " " PLACE$(STA) : J'$. I PKSTNU(A) : :Iterate through nearby transit stopsU$8 " " I "-- " PLACE$(PKGSTA(A,I)) : I$B "Which place do you want to go to (by number)";B$L B BPKSTNU(A) "Not a valid response." : B$VSTAPKGSTA(A,B) : MINMINPKSTDS(A,B) : J%`:*%j:Walk to another location routineJ%tXSTAWLK(STA) : X %~ "It would take too long to walk to another transit stop." : % : "From here you can walk to the following transit stops:" & " 1 -- " PLACE$(STA) " (where you are now)""& I STAWLK(STA)Q& " " I "-- " PLACE$(STAWK(STA,I)) : I& "Which place do you want to go to (by number)";B& B BSTAWLK(STA) "Not a valid response." : &STASTAWK(STA,B) : MINMIN(()) : J':$':Travel Hazards Subroutine]' ()u{ : :3% chance of tough characters' "Some tough characters are looking furtively in your direction."' "You suspect that they may be Greens (members of the notorious"0( "Green Triad). Do you want to move to another seat";A$ : \(  A$"Y" ()L}  : F}( ()L} 2 : P( "You can feel their evil looks boring into your back, but they let"(( "you pass. Whew! All seems okay...for now." : K)2 "You look the other way and hope they take no further notice of you.")< "The ploy seems to work and they leave you alone." : )F "Uh oh. Two of them moved to block your way."*P "Bad news...they are all moving in to surround you." : G*Z "They pull knives and threaten to turn you over to the Chinese."x*d "You offer them a bag of gold..."; : *n "and they accept." : BAG BAGBAG : BGMAXBGMAX : +x "Since you have none with you, they offer to accompany you to your"J+ "next pickup and act as 'protection.'" : BGTOTALBGTOTAL : R+:z+:Subroutine to put gold in sampan+ BAG  : :No gold collected+ "Do you want to put the bags you are carrying aboard your sampan";A$',  : A$"N" "Okay, it's up to you." : Y, "Good. You stow them safely out of sight.",MINMIN : BGTOTALBGTOTALBAG : BAG : BGX, BGTOTALBGMAX @, STA2 , "Do you want to move the sampan to Tsuen Wan";A$ : 8- A$"N" "Okay; the captain is ready when you are." : - "Okay. You shove off and make your silent way across the harbor."-MINMIN(()) : STA2 : H- "You are at Tsuen Wan, New Territories.". "Public transit that stops here:"." I STANU(STA)K., " " TRAIN$(STATR(STA,I)); : I : : S.6:~.@:All gold collected before midnight?.J I  : I : : I  .T : X$"CONGRATULATIONS !" :  , : /^ K d : K : : K 2 : K : IL/h " You managed to pick up all" BG "bags of gold and jewels"i/r "before midnight." : /| BGTOTALBG / " It's too bad that you lost" BGBGTOTAL "of them along the way."0 : " You sail away on your sampan and start your next"C0 "great empire in Morristown, New Jersey." : h0X$"Good Joss !" :  : 0p0:0:Time ran out0BGTOTALBGTOTALBAG0 BGTOTALBG 0BGTOTALBGTOTAL : 1 "Too bad, in your rush to escape you had to drop a bag of gold."11 BGTOTALBG {1 " You managed to get away with your life and" BGTOTAL "bags of"1 "gold and jewels. Not bad, but you could do better." : 0 2 " You barely managed to escape with your life and only" BGTOTALP2 "bags of gold and jewels. You lost much face and you will have"2 "difficulty becoming Tai Pan of a new venture."2&:20:Play again routine2: : : "Would you like to play again";A$ : 2D A$"Y" : "M" : 3N:43X : X$"Hong Kong Hustle" :  : : z3b " It is June 30, 1997 and China will take over the British"3l "Colony of Hong Kong on July 1. While the transition was supposed"4v "to be smooth and amicable, you just learned that the Chinese intend"X4 "to confiscate much of the property of the great trading houses."4 " You, the Tai Pan, are being closely watched, so you disguise"4 "yourself as a common factory worker and set out, using only public"95 "transport, to recover as much of your liquid assets (gold & jewels)"5 "as possible before the day ends. You deposit them on an inconspic-"5 "uous sampan initially tied up near the Macau Jetfoil Pier."6 " You may move the sampan from the pier on Hong Kong Island to"]6 "another pier near Tsuen Wan in the New Territories, but to move it"6 "more than once would be very dangerous."6 " You can use any of 34 different transit lines (bus, train,"7 "subway, ferry, tram, and public sampan) which service 125 stops"h7 "throughout Hong Kong Island, Kowloon, and the New Territories. Of"7 "course, only 15 of these stops are of really keen interest to you."7 " Depending upon how much gold you pick up at various locations,"G8  "you may have to return to your sampan more than once. Time, of"8 "course, is your biggest enemy, and you'll have to leave at midnight"8  "no matter what. Good luck!" : : 8*:84:Subroutine to read words 9> I  : FR$(I) : I : U9H "associate","friend","confidant","ally","comrade","colleague","mate"r9R "partner","compatriot"z9\:9f:Subroutine to read data about gold pickups9p I PS9z PN(I),PKGDES$(I),PKSTNU(I)9 J PKSTNU(I): PKGSTA(I,J),PKSTDS(I,J)": J : I : W: 1,"Computer Science Dept, HK University",1,2,5: 2,"Angora Fashion Shop, Stanley",1,21,5: 3,"Jumbo Floating Restaurant, Aberdeen",1,27,10: 4,"Chop Shop, Peak Tower Village",1,32,3(; 5,"Cathay Hotel, Yee Woo St & Causeway Rd",2,11,12,12,3`; 6,"Singapore Hotel, Wan Chai District",2,8,5,9,10; 7,"Owners Box #4, Happy Valley Raceway",1,35,5; 8,"Happy Toy Company, Quarry Bay",1,14,4; 9,"Torture Exhibit, Tiger Balm Garden",1,47,7-< 10,"Ping Shan Pagoda, New Territories",1,100,6`< 11,"Royal Hong Kong Golf Club, N.T.",1,106,5< 12,"Village Hall at Sha Tau Kok, N.T.",1,86,3< 13,"Harbormaster, Plover Cove, N.T.",2,92,2,91,6=$ 14,"Tai Ping Carpet Factory, Tai Po, N.T.",1,81,5<=. 15,"Temple of 1000 Buddhas, Sha Tin, N.T.",1,78,10x=8 16,"Yacht Squadron Captain, Hebe Haven, N.T.",1,114,3=B 17,"Tai On Restaurant, Lyemun Village, Kowloon",1,127,10=L 18,"Kam Tin Walled Village, N.T.",1,97,3>V 19,"San Miguel Brewery, Ting Kau, N.T.",1,118,5Y>` 20,"Lei Cheng Uk Tomb, Cheung Sha Wan, Kowloon",1,57,4>j 21,"Sung Dynasty Village, Lai Chi Kok, Kowloon",1,58,3>t 22,"Wong Tai Sin Temple, Kowloon",1,66,5?~ 23,"Jade Market near Jordan Rd, Kowloon",2,49,3,52,3? :;? :Subroutine to read data about transit stopsk? I STNS : :STNS = number of stations? STA, PLACE$(I),STANU(I),STAWLK(I)? J STANU(I)? STATR(I,J) : :Read trains, busses, etc. that stop here? J@ J STAWLK(I)G@ STAWK(I,J) : :Read other stations within walking distanceY@ J : I : {@ 1,"Whitty Street",2,1,4,8,1@ 2,"Hong Kong University",2,1,4,8,2@ 3,"Central Market",3,1,4,8,19,3@ 4,"Sheung Wan District",3,1,4,8,19,4)A 5,"Macau Jet Foil Pier",5,3,1,2,4,8,19,5,6,46lA 6,"Central Bus Terminal",9,4,4,5,6,7,8,10,11,15,19,5,5,43,46A( 7,"Queensway/Admiralty",11,3,1,2,4,5,6,10,11,15,16,17,19,7,8,37A2 8,"Arsenal Street",7,3,1,2,4,5,6,11,19,8,7,37B< 9,"Wan Chai Road",3,2,2,4,11,9,10NBF 10,"Tin Lok Lane and Hennessy Road",4,3,2,4,11,19,10,9,11BP 11,"Percival and Yee Woo Streets",4,3,2,4,11,16,11,10,12BZ 12,"Causeway Road (Causeway Bay)",3,2,2,4,16,12,11Bd 13,"North Point",3,1,2,4,16,13Cn 14,"Quarry Bay",3,1,2,4,16,14GCx 15,"Sai Wan Ho Ferry Pier",5,2,2,4,14,16,33,15,16sC 16,"Shau Kei Wan",4,2,2,4,14,16,16,15C 17,"Mt. Parker",1,1,14,17C 18,"Shek-O Road",1,1,14,18C 19,"Turtle Cove Beach",1,1,14,19C 20,"Hairpin Beach",1,1,14,20!D 21,"Stanley",4,1,6,7,9,14,21JD 22,"Chung Hom Wan Road",2,1,6,9,22nD 23,"Repulse Bay",3,1,5,6,9,23D 24,"Deep Water Bay",1,1,9,24D 25,"Wong Chuk Hang",1,1,9,25D 26,"Ocean Park",2,1,9,10,26D 27,"Aberdeen",3,1,8,9,10,27E 28,"Wah Fu",1,1,8,282E 29,"Pok Fu Lam",1,1,8,29PE 30,"Mt. Davis",1,1,8,30qE 31,"Kennedy Town",1,1,8,31E" 32,"Victoria Peak",2,1,3,15,32E, 33,"Magazine Gap",1,1,10,33E6 34,"Aberdeen Tunnel",1,1,10,34 F@ 35,"Happy Valley Raceway",2,1,1,19,350FJ 36,"Garden Street",1,3,3,36,7,46iFT 37,"Queens Road East",8,3,1,2,4,5,6,7,11,19,37,7,8F^ 38,"Mt. Nicholson",2,1,5,6,38Fh 39,"Wong Nei Chong Gap Road",2,1,5,6,39Fr 40,"Tai Koo Shing",3,1,2,4,16,40 G| 41,"Fortress Hill",3,1,2,4,16,41*G 42,"Tin Hau",3,1,2,4,16,42fG 43,"Star Ferry Pier, Hong Kong",4,3,1,2,12,13,43,6,46G 44,"Heng Fa Chuen",1,1,16,44G 45,"Chai Wan",1,1,16,45G 46,"Central",9,4,4,5,6,10,11,15,16,17,19,46,6,36,43H 47,"Tiger Balm Garden",1,1,11,47LH 48,"Star Ferry Pier, Kowloon",6,3,12,20,21,22,28,31,48,51,107H 49,"Jordan Road Ferry Pier",3,2,13,23,24,49,52H 50,"Tsuen Wan",3,1,17,22,23,50H 51,"Tsim Sha Tsui, Haiphong & Nathan Rds",4,3,17,21,22,31,51,48,107*I 52,"Jordan Rd & Nathan Rd",4,3,17,21,22,31,52,49,53kI 53,"Yau Ma Tei & Nathan Rd",6,3,17,18,21,23,24,31,53,52,54I 54,"Mong Kok",6,3,17,18,21,22,24,31,54,53,55I 55,"Prince Edward",5,2,17,18,21,24,31,55,54I 56,"Sham Shui Po",1,1,17,56J 57,"Cheung Sha Wan",1,1,17,57@J& 58,"Lai Chi Kok",4,1,17,21,22,23,58cJ0 59,"Mei Foo",3,1,17,22,23,59J: 60,"Lai King",3,1,17,22,23,60JD 61,"Kwai Fong",3,1,17,22,23,61JN 62,"Kwai Hing",3,1,17,22,23,62JX 63,"Tai Wo Hau",3,1,17,22,23,63%Kb 64,"Shek Kip Mei",5,1,18,21,22,24,31,64AKl 65,"Lok Fu",1,1,18,65cKv 66,"Wong Tai Sin",1,1,18,66K 67,"Diamond Hill",1,1,18,67K 68,"Choi Hung Terminal",3,1,18,28,29,68K 69,"Kowloon Bay",1,1,18,69K 70,"Ngau Tau Kong",1,1,18,70L 71,"Kwun Tong",2,1,18,34,71:L 72,"Tai Wo Ping",1,1,31,72kL 73,"Tsim Sha Tsui Centre",2,2,20,28,73,107L 74,"Hung Hom Train Station",2,1,20,30,74L 75,"Mong Kok",1,1,30,75L 76,"Kowloon Tong",3,1,18,24,30,76L 77,"Tai Wai",1,1,30,77M 78,"Sha Tin",2,1,24,30,78OM 79,"Fo Tan (Sha Tin New Town)",2,1,24,30,79zM 80,"Chinese University",2,1,24,30,80M 81,"Tai Po",4,1,24,25,27,30,81M 82,"Fanling",3,2,24,26,30,82,84M 83,"Sheung Shui",3,1,24,30,32,83N* 84,"Luen Wo Market",1,2,26,84,822N4 85,"Hung Leng",1,1,26,85SN> 86,"Sha Tau Kok",1,1,26,86wNH 87,"Starling Inlet",1,1,26,87NR 88,"Luk Keng",1,1,26,88N\ 89,"a small crossroad with a sign to Tin Sam",1,1,27,89Nf 90,"Shuen Wan",1,1,27,90Op 91,"Tolo Harbor",1,2,27,91,92?Oz 92,"Plover Cove Dock",1,2,27,92,91`O 93,"Tai Mei Tuk",1,1,27,93O 94,"Brides's Pool",1,1,27,94O 95,"a rutted crossroad with a dirty sign, 'Ping Long'",1,1,25,95P 96,"a mountain pass by Route Twisk Lookout",1,1,25,962P 97,"Kam Tin Walled Village",1,1,25,97gP 98,"a chicken farm near Ho Hok Shan",1,1,25,98P 99,"Yuen Long",3,1,23,25,32,99P 100,"Ping Shan Pagoda",1,1,25,100P 101,"Lau Fau Shan",1,1,25,101P 102,"Puk Wai",1,1,32,102Q 103,"Mai Po",1,1,32,1038Q 104,"Lok Ma Chau",1,1,32,104iQ 105,"a duck farm near Pak Shek",1,1,32,105Q 106,"Royal HK Golf Club",1,1,32,106Q 107,"Salisbury Rd",2,4,20,28,107,48,51,73Q 108,"Chatham Rd",1,1,28,108 R$ 109,"Kai Tok Airport",1,1,28,1090R. 110,"Ngau Chi Wan",1,1,28,110VR8 111,"Tseng Lan Shue",1,1,29,111tRB 112,"Pik Uk",1,1,29,112RL 113,"Wo Mei",1,1,29,113RV 114,"Marina Cove, Hebe Haven",1,1,29,114R` 115,"Ta Ho Tun",1,1,29,115Sj 116,"Sai Kung Town",1,1,29,116ASt 117,"Lucky Factory Estate, Tso Kung Tam",1,1,23,117uS~ 118,"San Miguel Brewery, Ting Kau",1,1,23,118S 119,"Dragon Beach, Tai Lam",1,1,23,119S 120,"Tuen Mun--Castle Peak",1,1,23,120S 121,"Ching Chung Koon",1,1,23,121 T 122,"Miu Fat Monastery",1,1,23,122HT 123,"Lion Rock Tunnel",1,1,24,123iT 124,"Amah Rock",1,1,24,124T 125,"Kak Tin",1,1,24,125T 126,"Tsang Tai Uk",1,1,24,126T 127,"Lyemun",2,1,33,34,127T: U:Subroutine to read data about transit routesEU I TRNS : :TRNS = number of trains, busses, etc.dU TR, TRAIN$(I), TRSTOP(I)zU  J TRSTOP(I)U TRSTA(I,J) : :Read station numbers for transit vehicleU J : TRFREQ(I)U( J TRSTOP(I) : :Read travel timesV2 TRT(I,J) : J[V<TRDES$(TR,)PLACE$(TRSTA(TR,)) : :Place name at one end of lineVFTRDES$(TR,)PLACE$(TRSTA(TR,TRSTOP(TR))) : :and at other endVP I : VZ 1,"#1 Bus",6,5,43,7,37,8,35Vd 5,3,3,3,2,9Wn 2,"#2 Bus",16,5,43,7,37,8,9,10,11,12,42,41,13,14,40,15,16EWx 4,3,3,3,2,2,3,3,2,3,3,3,3,3,3,2aW 3,"Peak Tram",2,32,36lW 12,4W 4,"Tram A",21,1,2,3,4,5,6,46,7,37,8,9,10,11,12,42,41,13,14,40,15,16W 4,4,3,3,3,2,2,2,2,3,2,3,3,2,3,4,4,4,4,4,3X 5,"#61 Bus",8,6,46,7,37,8,38,39,23&X 20,2,3,3,2,4,4,4UX 6,"#6 Bus",10,6,46,7,37,8,38,39,23,22,21pX 12,2,3,3,2,4,4,4,5,5X 7,"#260 Express Bus",3,6,37,21X 25,6,19X 8,"#7 Bus",11,6,5,4,3,2,1,31,30,29,28,27X 5,2,3,3,2,3,3,4,4,3,3Y 9,"#73 Bus",7,21,22,23,24,25,26,27,Y 15,5,5,7,8,8,7TY 10,"#70 Bus",7,6,46,7,33,34,26,27iY 10,2,3,3,4,3,7Y" 11,"#11 Bus",9,6,46,7,37,8,9,10,11,47Y, 7,2,3,3,2,2,3,3,9Y6 12,"Star Ferry",2,43,48Y@ 6,12YJ 13,"Jordan Road Ferry",2,43,49ZT 12,161Z^ 14,"#14 Bus",7,15,16,17,18,19,20,21FZh 45,3,5,6,6,5,5eZr 15,"#15 Bus",4,6,46,7,32tZ| 17,2,3,8Z 16,"MTR--Red",13,46,7,11,12,42,41,13,14,40,15,16,44,45Z 8,2,2,2,2,2,2,2,2,2,2,2,2[ 17,"MTR--Green",16,46,7,51,52,53,54,55,56,57,58,59,60,61,62,63,50?[ 3,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2{[ 18,"MTR--Blue",12,53,54,55,64,76,65,66,67,68,69,70,71[ 3,2,2,2,2,2,2,2,2,2,2,2[ 19,"Tram B",10,3,4,5,6,46,7,37,8,10,35[ 4,3,3,2,2,2,2,3,2,8\ 20,"Mini Bus",4,48,107,73,74\ 3,2,2,3>\ 21,"#6A Bus",8,48,51,52,53,54,55,64,58T\ 3,2,2,3,2,2,3,4\ 22,"#2 Bus",12,48,51,52,54,64,58,59,60,61,62,63,50\ 3,2,2,4,3,4,2,3,3,3,3,3\ 23,"#68 Bus",17,49,53,64,58,59,60,61,62,63,50,117,118,119,120,121,122"] 99,5,2,3,4,2,3,3,3,3,3,5,7,6,8,6,8,6l]& 24,"#70 Bus",16,49,53,54,55,64,76,123,124,125,126,78,79,80,81,82,83]0 5,2,2,2,4,4,5,4,5,4,5,6,5,6,5,4]: 25,"#64K Bus",8,81,95,96,97,98,99,100,101]D 10,5,6,5,6,5,6,6^N 26,"#69K Bus",6,82,84,85,86,87,88^X 12,2,8,5,6,5?^b 27,"#74R Bus",7,81,89,90,91,92,93,94U^l 15,5,5,6,3,8,10^v 28,"#5 Bus",6,48,107,108,109,110,68^ 6,2,3,4,4,3^ 29,"#92 Bus",7,68,111,112,113,114,115,116^ 9,3,4,3,4,3,4_ 30,"Kowloon-Canton Railway",10,74,75,76,77,78,79,80,81,82,832_ 8,3,3,3,4,3,3,4,4,4^_ 31,"#9 Bus",8,48,51,52,53,54,55,64,72t_ 5,2,2,2,3,2,3,3_ 32,"#76K Bus",7,99,102,103,104,105,106,83_ 15,6,6,5,6,6,6_ 33,"HYF Ferry",2,15,127_ 15,12_ 34,"Sampan",2,71,127 ` 30,10`:=` :Subroutine to check for out of timeg` MIN * : :12 midnight yet?u`  H : `* : "So sorry, it is after 12 midnight and you'll have to get to"a4 "your sampan and out of Hong Kong as quickly as possible.":  a>:1aH:Subroutine to print the timepaRHR(MIN<) : MNMIN