zd : n  , : X$"The Journey of Marco Polo, 1271" : x  , : X$"(c) David H. Ahl, 1986" :  , :  :  EP()XJL, : C : W : M : FP : BSKc : :Initial quantities of stuff h :  : :Display the scenario RN : RNRN : : RN :  : :Purchase initial supplies X : :Input hunting skill level@X$"Press any key to begin your trek!" :  :  : H:\:Main programJJ :  : :Next two-month segmentDTDTD : DTp  : :Reached end of trip?D(BA(d()) : "You have traveled" DT "miles.", "Here is what you now have:" :  Z  : :Check for no jewels or clothes|  : :Check for sickness BSKJ BSKc : BLB : BABA : :Camel recover yet? \ : :Check for overloaded camels J JL  : :Barter for supplies:" C x : :No clothes?X,  : :Eating routine6 DZ ()Q8~  : :18% chance to hunt for food@ :  : :Desert sectionsJ DZ  : :Event happensT & : ^:)h:Subroutine to print initial scenariocrX$"The Journey of Marco Polo - 1271" :  : : | " Starting from Venice in 1271 you travel by sailing ship to the" "port of Armenia. Upon arrival, you prepare for a 6000-mile trek to"G "the court of the Great Kublai Kahn in Shang-tu, Cathay. Having set" "aside" JL "precious jewels to finance your planned 3-year trip, you" "must barter for the following supplies in Armenia:" " * Camels (Sturdier animals will cost more. You will probably"T " want 8 to 10 camels to carry your many supplies.)" " * Food (You must barter for food as you travel along. However," " prices tend to be lower in port cities, so you should pack" " in a good supply at the start.)Z " * Oil for lamps and cooking (Over much of the trip, you will be" " able to use wood to build fires. However, in the Persian," " Lop, and Gobi deserts you will need oil.)" : *  " From Venice you have also packed clothing, weapons (crossbows),"w  "and medicines (balms and unguents), however, your provisions will be" "depleted as you go along and you must replenish them. The selection" "and price of supplies is quite different in various regions, so you"[& "must barter wisely. As a merchant, you are not skilled in fishing"0 "or hunting, although occasionally you might be able to try to get": "to get some food in this way."D  : : N:X:Subroutine to initialize hunting skill level[bS$()"SPLAT" : S$()"SPRONG" : S$()"TWACK" : S$()"ZUNK"lFA$()"wild boar" : FA$()"big stag" : FA$()"black bear"q : "Before you begin your journey, please rank your skill with"v "the crossbow on the following scale:"D " (1) Can hit a charging boar at 300 paces"n " (2) Can hit a deer at 50 paces" " (3) Can hit a sleeping woodchuck at 5 paces" " (4) Occasionally hit own foot when loading "How do you rank yourself";HX HX HX : C "Please enter 1, 2, 3, or 4" : K:u:Subroutine to get initial supplies " After three months at sea, you have arrived at the seaport of"  "Laiassus, Armenia. There are many merchants in the port city and"W  "you can easily get the supplies you need. Several traders offer you" A1 : A2 : "camels at prices between" A1 "and" A2 "jewels each."  "How much do you want to pay for a camel";A :  : BAA#!  "You will need at least 7 camels, but not more than 12."g!A1 : A2 : "How many camels do you want to buy";A : ! BA : JLJLBAB : A2B : :Camels--number, cost, amount they can carry"* " One large sack of food costs 2 jewels. You will need at least"O"4 "8 sacks to get to Babylon (Baghdad); you can carry a maximum of" A2">A1 : "sacks. How many do you want";A : "HFA : JLJLA : A2BA : :Food & cost, amount of oil camels can carry!#R " A skin of oil costs 2 jewels each. You should have at least 6"i#\ "full skins for cooking in the desert. Your camels can carry" A2#fA1 : "skins. How many do you want";A : #pBLB : LA : JLJLL : :Oil--amount and cost : return#:$$:Subroutine to check for being out of jewels and clothesT$ JL  : :Still have a few jewels?$ "You have only" JL "jewels with which to barter." : B $ "You push on with your" B "camels." : % "Would you like to sell a camel";A$ :  : A$"N" O%RN(()) : "You get" RN "jewels for your best camel."%JLJLRN : BB : BLBL : :Add jewels, subtract camel% C : :Have some clothes?% "You should try to replace that tent you have been wearing as a"B& "robe. It is badly torn and the Tartars find it insulting." : J&:r&:Subroutine to deal with sickness& PSK PSKTPSKTPSK : PSK : :Sickness total& PWD PWDTPWDTPWD : PWD : :Injuries total& FE PFDPFDL'$ PSKTPWDTPFD _'. ()333 : :70% chance of delay due to recurring illness'8 "As a result of sickness, injuries, and poor eating, you must stop"'B "and regain your health. You trade a few jewels to stay in a hut."3(LRN(L()) : RN  : :6% chance of dyingy(V "You grow steadily stronger, but it is" RN "months until you"(` "are again fit to travel." : PSKT : PWDT : PFD : JJRN(jM(M) : FF : F F$)t JL JLJL : JL(JL) : :Costs money for lodging2)~  : n) I  : : "You stay for" RN "months but grow") "steadily weaker and finally pass away." : JJRN :  ):):Subroutine to barter for supplies!* "You have" JL; : "jewels. Do you want to barter here";A$<*  : A$"N" dy*RN(()) : "Camels cost" RN "jewels here. ";*A1 : A2(JLRN) : "How many do you want";A : *BBA : BLBLA : BABAA : :Lower quality animals along routeE+JLJLARN : RN(()) : "Sacks of food cost" RN "jewels. ";+A2((JLRN)) : "How many do you want";A :  : FFA+ FLBL "Camels can't carry that much." : FFA : ,JLJLARN : RN(()) : "Skins of oil cost" RN "jewels. ";R, A2((JLRN)) : "How many do you want";A :  : LLA, FLBL "Camels can't carry that much." : LLA :  ,JLJLARN : RN(()) : "A set of clothes costs" RN;-(A2((JLRN)) : "jewels. How many do you want";A : d-2CCA : JLJLARN : "You can get a bottle of balm for 2 jewels. ";-<A2JL : "How many do you want";A :  : JLJLA : MMA-FA2JL : RN(()) : "You can get" RN "arrows for 1 jewel."2.P "How many jewels do you want to spend on arrows";A : X.ZJLJLA : WWRNA : C CZ.d : "Here is what you now have:" :  : .n:.x:Subroutine to deal with no clothes. : "You were warned about getting more modest clothes.":Z FSF FSFS : LSLS : I>FFFS : LLLS : JLJLFSLS : :Decrease food and oil, add jewels> "You sell" FS "of food," LS "of oil for which you get only";> FSLS "jewel" X$ "." : >:> "One of your camels is very sick and can't carry a full load."A? "Want to (1) Keep it with you, (2) Slaughter it, or (3) Sell it";Ao? A  : A  : A *? "That is not a choice. Again, please." : ?BSKJ : H : ?: @ "Long stretch with bad water. Costs time to find clean wells."@ DD2 : "@ :d@$ "You get lost trying to find an easier route." : DDd : l@. :@8 "Heavy rains completely wash away the route." : DDZ : @B :@L "Some of your food rots in the humid weather." : FF : @V :DA` "Marauding animals got into your your food supply." : FF : LAj :At "A fire flares up and destroys some of your food and clothes."A~ FFL : CC : & : L : LL : A :B "Two camels wander off. You finally find them after spending"BB "several days searching for them."QB DD : YB :B "You get a nasty burn from an oil fire."B PWD :  : B :B "High winds, sand storms, and ferocious heat slow you down."B DDF : C :JC "A gash in your leg looks infected. It hurts like the blazes."mC  : DD2 : PWD333 : uC :C "Jagged rocks tear your sandals and clothing. You'll have to get"C "replacements as soon as you can." : CC : DD : D : : X$"CONGRATULATIONS !" :  , : SH K d : K : : K 2 : K : ISR :  : "You have been traveling for" J "months!" : T\ "You are ushered into the court of the Great Kublai Kahn."HTf "He surveys your meager remaining supplies:" :  Tp "... and marvels that you got here at all. He is disappointed"Tz "that the Pope did not see fit to send the 100 men of learning"U "that he requested and, as a result, keeps the three of you as"]U "his personal envoys for the next 21 years. Well done!" : eU :U : "Would you like to try again";A$ : U A$"Y" : "M" : U :U :Subroutine to print the dateV MOJ : MO : MOMO : V YR(J)8V : "Date: " MO$(MO) YR : @V :nV :Subroutine to read event probabilitiesV I  : A : EPTEPTA : EP(I)EPT : IV 6,4,4,6,6,6,6,4,4,1,6,8,18,10V I  : MO$(I) : I : $W "March","May","July","September","November","January",W:PW$:Subroutine to shoot crossbowW.RN(()) : :Print random shooting wordW8S1<((,,))((,)) : :Start timerWB "Type: " S$(RN) " "; : X$ : X$S$(RN) `XG (X$) tPXL I (X$) : :Iterate through letters for possible lower caseXV (S$(RN),I,)(((X$,I,)) ) t : IX`S2<((,,))((,)) : :End timerXjSRS2S1HX : : :Shooting responseYt "That's not it. Try again. "; : BY~:EY:Subroutine to hit continue keyqYX$"Press any key to continue." : Y () : RNRN : : Y:Y:Subroutine to print a centered lineY (F(X$))) X$; : Y:$Z:Subroutine to check if answer entered in is range