home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / basic / million.bas < prev    next >
BASIC Source File  |  1994-07-13  |  9KB  |  278 lines

  1. 0  PRINT "Press any key to begin.":FOR I=-32767 TO 32767 :X$=INKEY$:IF LEN(X$)=1 THEN GOTO 1 ELSE NEXT I
  2. 1 PRINT CHR$(26);TAB(23);"MILLIONAIRE"
  3. 2 PRINT TAB(20);"CREATIVE COMPUTING"
  4. 3 PRINT TAB(18);"MORRISTOWN, NEW JERSEY"
  5. 4 PRINT:PRINT:PRINT
  6. 5 F$="$###,###"
  7. 10 REM    MILLIONAIRE BY CRAIG GUNNETT
  8. 20 PRINT "THIS IS THE GAME OF 'MILLIONAIRE'.  ALL YOU MUST DO IS"
  9. 30 PRINT "TYPE IN YOUR NAME AND ANSWER SOME QUESTIONS.  THE"
  10. 40 PRINT "DECISIONS YOU MAKE WILL DETERMINE HOW MUCH MONEY YOU"
  11. 50 PRINT "MAKE.  AT THE TIME OF YOUR DEATH, YOUR LIFE WILL BE"
  12. 60 PRINT "RATED BY THE AMOUNT OF MONEY YOU MADE THROUGHOUT"
  13. 70 PRINT "YOUR LIFE.  IF YOU HAVE MADE $1,000,000 , YOU WILL BE"
  14. 80 PRINT "A MILLIONAIRE AND WIN THE GAME.  NAME PLEASE";
  15. 100 LET O=-1
  16. 110 DIM A$(20),Z$(1),M$(36),S(9),Q(16)
  17. 120 FOR I=1 TO 4
  18. 130   LET S(I)=150
  19. 140 NEXT I
  20. 150 INPUT A$
  21. 160 PRINT 
  22. 170 PRINT "O.K., ";A$;", THIS IS YOUR NEW LIFE!"
  23. 180 LET M$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
  24. 190 IF RND(1)>.5 GOTO  220
  25. 200 PRINT "ON A BIG FARM";
  26. 210 GOTO 230
  27. 220 PRINT "IN A SMALL TOWN";
  28. 230 LET T=INT(RND(1)*12)+1
  29. 240 PRINT ", ON ";MID$(M$,3*T-2,3);INT(RND(1)*28)+1;CHR$(8);", 1980,";
  30. 250 PRINT " ";A$;" IS BORN."
  31. 260 PRINT "YOUR PARENTS ARE VERY ";
  32. 270 IF RND(1)>.5 GOTO  310
  33. 280 PRINT "RICH. ";
  34. 290 LET M=INT(RND(1)*5000)+10000
  35. 300 GOTO 330
  36. 310 PRINT "POOR. ";
  37. 320 LET M=INT((RND(1)+RND(1))/2*1000)
  38. 330 LET T=INT(RND(1)*12)+1
  39. 340 LET Y=1996+INT(RND(1)*10)
  40. 350 PRINT "ON ";MID$(M$,T*3-2,3);T*2;CHR$(8);",";Y;CHR$(8);", YOU"
  41. 360 PRINT "LEAVE HOME WITH ";:PRINT USING F$;M;:PRINT "."
  42. 370 LET Y=Y+INT(RND(1)*3)+1
  43. 380 GOSUB  680
  44. 390 FOR J=1 TO 13
  45. 400 IF (J/3)-INT(J/3)+E=0 THEN GOSUB 680
  46. 410   LET D=INT(28*RND(1))+1
  47. 420   LET M1=(INT(12*RND(1))+1)*3
  48. 430   PRINT 
  49. 440 PRINT MID$(M$,M1-2,3);D;CHR$(8);",";Y
  50. 450   IF Y-1980<70 GOTO  500
  51. 460   IF RND(1)>.5 GOTO  500
  52. 470   PRINT "YOU ARE DEAD (COULD'NT TELL, COULD YOU?) AT THE"
  53. 480   PRINT "AGE OF";Y-1980;CHR$(8);"."
  54. 490   GOTO 2370
  55. 500   IF M>=0 GOTO 540
  56. 510   LET I=INT(.07*Y9*(-M))
  57. 520   LET M=M-I
  58. 530   PRINT "THE INTEREST ON YOUR LOAN IS ";:PRINT USING F$;I;:
  59.       PRINT ". YOU HAVE ";:PRINT USING F$;M;:PRINT "."
  60. 540   LET Q=INT(13*RND(1))+1
  61. 550   IF Q(Q)=1 GOTO 540
  62. 560   LET Q(Q)=1
  63. 570   ON Q GOTO  890, 1010, 1100, 1220, 1280, 1430, 1530
  64. 580   ON (Q-7) GOTO  1850, 1930, 2060, 2120, 2240, 2280
  65. 590   PRINT "YOU NOW HAVE ";:PRINT USING F$;M;:PRINT "."
  66. 600   IF O=-2 GOTO 1530
  67. 610   IF J=1 GOTO  640
  68. 620   LET M=M+(E-C)*Y9
  69. 630   PRINT "YOUR EARNINGS AND EXPENSES LEAVE YOU WITH ";:
  70.       PRINT USING F$;M;:PRINT "."
  71. 640   LET Y9=INT(RND(1)*6)+5
  72. 650   LET Y=Y+Y9
  73. 660 NEXT J
  74. 670 GOTO 470
  75. 680 REM      JOB SUB
  76. 690 PRINT "YOU GOT A NEW JOB AS A ";
  77. 700 ON INT(RND(1)*5)+1 GOTO  740, 770, 800, 830
  78. 710 PRINT "TEACHER";
  79. 720 LET E=INT(RND(1)*4000)+17000
  80. 730 GOTO 850
  81. 740 PRINT "LAWYER";
  82. 750 LET E=INT(RND(1)*40000!)+80000!
  83. 760 GOTO 850
  84. 770 PRINT "COMPUTER PROGRAMMER";
  85. 780 LET E=INT(RND(1)*5000)+20000
  86. 790 GOTO 850
  87. 800 PRINT "BUS DRIVER";
  88. 810 LET E=INT(RND(1)*2000)+16000
  89. 820 GOTO 850
  90. 830 PRINT "FOOTBALL PLAYER";
  91. 840 LET E=INT(RND(1)*100000!)+100000!
  92. 850 LET C=E-10000+INT((RND(1)+RND(1))*5000)
  93. 860 PRINT ". YOU EARN ";:PRINT USING F$;E;:PRINT " A YEAR."
  94. 870 PRINT "YOU ADJUST YOUR EXPENSES TO ";:PRINT USING F$;C;:PRINT" A YEAR."
  95. 880 RETURN 
  96. 890 PRINT "YOU GO TO LAS VEGAS TO GAMBLE.  HOW MUCH DO YOU BET";
  97. 900 INPUT S
  98. 910 PRINT 
  99. 920 IF S<=0 GOTO 1000
  100. 930 IF RND(1)>.7 GOTO  970
  101. 940 LET S2=-INT(RND(1)*S)
  102. 950 PRINT "HA! HA! YOU LOST ";:PRINT USING F$;-S2;:PRINT "."
  103. 960 GOTO 990
  104. 970 LET S2=INT((RND(1)+RND(1))*S)
  105. 980 PRINT "YOU WON ";:PRINT USING F$;S2;:PRINT "."
  106. 990 LET M=M+S2
  107. 1000 GOTO 590
  108. 1010 PRINT "YOU ARE OFFERED A COIN SUPPOSEDLY WORTH $100,000."
  109. 1020 PRINT "DO YOU BUY IT";
  110. 1030 INPUT Z$
  111. 1035 Z$=LEFT$(Z$,1)
  112. 1040 PRINT 
  113. 1050 LET V7=INT(RND(1)*200000!)+1
  114. 1060 IF Z$<>"Y" GOTO  1080
  115. 1070 LET M=M-100000!+V7
  116. 1080 PRINT "THE VALUE OF THE COIN IS ";:PRINT USING F$;V7;:PRINT "."
  117. 1090 GOTO 590
  118. 1100 PRINT "YOU ARE SERIOUSLY SICK.  (COULDN'T TELL, COULD YOU?)"
  119. 1110 PRINT "YOU HAVE ";
  120. 1120 ON (INT(RND(1)*3)+1) GOTO  1150, 1170
  121. 1130 PRINT "THE ASIO-DISPEPSIA REGIONALY HYPNOTIC FLU! (OH!)."
  122. 1140 GOTO 1180
  123. 1150 PRINT "COMPUTERITIS."
  124. 1160 GOTO 1180
  125. 1170 PRINT "INFECTIOUS FATALY REOCCURING CHRONIC BAD BREATH."
  126. 1180 LET U=INT(RND(1)*1000)+500
  127. 1190 LET M=M-U
  128. 1200 PRINT "HEALTH EXPENSES COST YOU ";:PRINT USING F$;U;:PRINT "."
  129. 1210 GOTO 590
  130. 1220 LET F=INT(RND(1)*100000!)
  131. 1230 LET C8=INT(F/2)-INT(RND(1)*(F/2))
  132. 1240 PRINT "YOUR GRANDFATHER GROVERS JUST DIED. (OH!)  HE LEFT"
  133. 1250 PRINT "YOU ";:PRINT USING F$;F;:PRINT ", BUT FUNERAL EXPENSES ARE ";:
  134.      PRINT USING F$;C8;:PRINT "."
  135. 1260 LET M=M-C8+F
  136. 1270 GOTO 590
  137. 1280 IF E=0 GOTO  890
  138. 1290 PRINT "NEWS FROM YOUR BOSS:"
  139. 1300 ON (INT(RND(1)*3)+1) GOTO  1350, 1390
  140. 1310 LET L=INT(RND(1)*3000)+1
  141. 1320 LET E=E-L
  142. 1330 PRINT "YOU GOT A ";:PRINT USING F$;L;:
  143.      PRINT " DECREASE IN PAY. YOU NOW EARN ";:PRINT USING F$;E;:PRINT "."
  144. 1340 GOTO 590
  145. 1350 PRINT "YOU'RE FIRED! (HA!)"
  146. 1360 LET E=0
  147. 1370 LET C=INT(C/4)
  148. 1380 GOTO 590
  149. 1390 LET R6=INT(RND(1)*5000)+1
  150. 1400 LET E=E+R6
  151. 1410 PRINT "YOU GOT A RAISE OF ";:PRINT USING F$;R6;:
  152.      PRINT ". YOU NOW EARN ";:PRINT USING F$;E;:PRINT "."
  153. 1420 GOTO 590
  154. 1430 PRINT "THE DOCTOR SAYS YOU NEED A VACATION.  DO YOU GO";
  155. 1440 INPUT Z$
  156. 1445 Z$=LEFT$(Z$,1)
  157. 1450 PRINT 
  158. 1460 LET V=INT(RND(1)*2000)+1000
  159. 1470 IF Z$="N" GOTO 1500
  160. 1480 PRINT "GOOD, THE VACATION COSTS ";:PRINT USING F$;V;:PRINT "."
  161. 1490 GOTO 1510
  162. 1500 PRINT "YOU JUST HAD A NERVOUS BREAKDOWN. MEDICAL COSTS ";:
  163.      PRINT USING F$;-V;:PRINT "."
  164. 1510 LET M=M-V
  165. 1520 GOTO 590
  166. 1530 FOR I=1 TO 4
  167. 1540   LET S(I)=INT((INT(RND(1)*100)+100+2*S(I))/3)
  168. 1550 NEXT I
  169. 1560 PRINT "#           STOCK NAME         PRICE   SHARES OWNED"
  170. 1562 PRINT "--          ----------         -----   ------------"
  171. 1570 PRINT "1 IBM (INCREDIBLY BAD MACHINES) ";S(1);"       ";S(5)
  172. 1580 PRINT "2 USS (USELESS & STINKY STEEL)  ";S(2);"       ";S(6)
  173. 1590 PRINT "3 NCR (NO CASH RETURN)          ";S(3);"       ";S(7)
  174. 1600 PRINT "4 TWA (TOTAL WRECK AIRLINES)    ";S(4);"       ";S(8)
  175. 1602 PRINT
  176. 1610 IF S(9)=1 GOTO 2410
  177. 1620 PRINT "DO YOU BUY, SELL ($100 FEE), OR NOT (B,S, OR N)";
  178. 1630 INPUT Z$
  179. 1635 Z$=LEFT$(Z$,1)
  180. 1640 PRINT 
  181. 1650 IF Z$="S" GOTO 1740
  182. 1660 IF Z$="N" GOTO 1810
  183. 1670 PRINT "STOCK # AND QUANTITY";
  184. 1680 INPUT S3,S(0)
  185. 1690 PRINT 
  186. 1700 LET S(4+S3)=S(4+S3)+S(0)
  187. 1710 LET O=-2
  188. 1720 LET M=M-S(S3)*S(0)-100
  189. 1730 GOTO 1620
  190. 1740 PRINT "STOCK # AND QUANTITY";
  191. 1750 INPUT S2,S5
  192. 1760 IF RND(1)<.5 GOTO  1880
  193. 1770 IF S5>S(4+S2) GOTO 1740
  194. 1780 LET S(4+S2)=S(4+S2)-S5
  195. 1790 LET M=M+S(S2)*S5-100
  196. 1800 GOTO 1620
  197. 1810 LET S1=S(5)+S(6)+S(7)+S(8)
  198. 1820 IF S1>0 GOTO 610
  199. 1830 LET O=-1
  200. 1840 GOTO 610
  201. 1850 PRINT "NEWS FLASH!!! ";
  202. 1860 PRINT "A TORNADO HAS JUST HIT THE HOME OF ";A$;"."
  203. 1870 GOTO 1890
  204. 1880 PRINT "AN AIRPLANE HAS JUST CRASHED INTO THE HOME OF ";A$;"."
  205. 1890 LET D8=INT(RND(1)*50000!)+1
  206. 1900 LET M=M-D8
  207. 1910 PRINT "DAMAGES HAVE BEEN ESTIMATED AT ";:PRINT USING F$;D8;:PRINT "."
  208. 1920 GOTO 590
  209. 1930 PRINT "OH! YOU JUST GOT ";
  210. 1940 IF Y-1980<55 GOTO  2000
  211. 1950 IF RND(1)>.4 GOTO  1980
  212. 1960 PRINT "CANCER";
  213. 1970 GOTO 2010
  214. 1980 PRINT "A HEART ATTACK";
  215. 1990 GOTO 2010
  216. 2000 PRINT "LEUKEMIA";
  217. 2010 LET M2=INT(RND(1)*5000)+1000
  218. 2020 LET M=M-M2
  219. 2030 PRINT ".  MEDICAL BILLS ARE ";:PRINT USING F$;M2;:PRINT "."
  220. 2040 IF RND(1)<.5 GOTO  470
  221. 2050 GOTO 590
  222. 2060 PRINT "YOU JUST HAD A CAR ACCIDENT!  MEDICAL COSTS"
  223. 2070 LET M3=INT(RND(1)*3000)+1000
  224. 2080 LET Q7=INT(RND(1)*5000)+100
  225. 2090 PRINT "ARE ";:PRINT USING F$;M3;:PRINT ". REPAIRS COST ";:
  226.      PRINT USING F$;Q7;:PRINT "."
  227. 2100 LET M=M-M3-Q7
  228. 2110 GOTO 590
  229. 2120 IF E=0 GOTO  1010
  230. 2130 LET E2=10000+INT(RND(1)*5000)
  231. 2140 PRINT "YOU ARE OFFERED ANOTHER JOB FOR ";:
  232.      PRINT USING F$;E2;:PRINT " A YEAR."
  233. 2150 PRINT "WOULD YOU LIKE TO MOONLIGHT";
  234. 2160 INPUT Z$
  235. 2170 PRINT 
  236. 2180 IF LEFT$(Z$,1)="N" THEN 590
  237. 2190 ON INT(RND(1)*3) GOTO  1350, 2220
  238. 2200 LET E=E+E2
  239. 2210 GOTO 590
  240. 2220 PRINT "FROM OVERWORK YOU GET ";
  241. 2230 GOTO 1980
  242. 2240 LET R2=INT(RND(1)*10000)+5000
  243. 2250 LET M=M-R2
  244. 2260 PRINT "YOUR HOME HAS BEEN ROBBED OF GOODS WORTH ";:
  245.      PRINT USING F$;R2;:PRINT "."
  246. 2270 GOTO 590
  247. 2280 IF O=-1 GOTO 1430
  248. 2290 IF RND(1)>.7 GOTO  1430
  249. 2300 LET B4=INT(RND(1)*4)
  250. 2310 PRINT "STOCK MARKET CRASH!!! EACH OF YOUR";S1;"SHARES OF"
  251. 2320 PRINT "STOCK IS WORTH ";:PRINT USING F$;B4;:
  252.      PRINT ". YOU MUST SELL ALL OF THEM"
  253. 2330 PRINT "FOR A TOTAL OF ";:PRINT USING F$;S1*B4;:PRINT "."
  254. 2340 LET M=M+S1*B4
  255. 2350 LET O=-1
  256. 2360 GOTO 590
  257. 2370 PRINT "YOU HAD ";:PRINT USING F$;M;:PRINT "."
  258. 2380 IF O=-1 GOTO 2430
  259. 2390 LET S(9)=1
  260. 2400 GOTO 1530
  261. 2410 LET M=M+S(1)*S(5)+S(2)*S(6)+S(3)*S(7)+S(4)*S(8)
  262. 2420 PRINT "WITH STOCK VALUE YOU HAVE ";:PRINT USING F$;M;:PRINT "."
  263. 2430 IF M<0 GOTO  2480
  264. 2440 IF M<500000! GOTO 2510
  265. 2450 IF M<1E+06 GOTO 2530
  266. 2460 PRINT A$;" WON!!  YOU ARE A MILLIONAIRE!!"
  267. 2470 GOTO 2540
  268. 2480 PRINT "YOU LOUSY #$%&'*!!! NOW YOUR POOR FAMILY HAS TO PAY"
  269. 2490 PRINT "OFF YOUR DEBTS.......................... "
  270. 2500 GOTO 2540
  271. 2510 PRINT "NOT BAD, ";A$;"."
  272. 2520 GOTO 2540
  273. 2530 PRINT "CLOSE, ";A$;".  MAYBE NEXT LIFE."
  274. 2540 PRINT "THANKS FOR PLAYING 'MILLIONAIRE', ";A$;"!!!!"
  275. 2545 PRINT:PRINT
  276. 2550 END
  277. "CLOSE, ";A$;".  MAYBE NEXT LIFE."
  278. 2540 PRINT "THANKS FOR PLAYING 'MILLIONAIRE', ";A$;"!!!!"