home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG021.ARK / BLKFRI3.ASC < prev    next >
Text File  |  1984-04-29  |  10KB  |  348 lines

  1. 100 REM   AUTHOR: ROBERT W. BAKER
  2. 101 REM   MODIFIED FOR BASIC-E (BARF) BY R S MASON   9-25-77
  3. 102 REM   MODIFIED FOR MICROSOFT DISK BASIC BY ZOSO
  4. 103 REM   THIS PROGRAM REQUIRES CP/M WITH 26K OF FREE MEMORY (OVERHEAD)
  5. 104 REM
  6. 105 REM   THIS GAME IS WRITTEN TO PROVIDE A REALISTIC MODEL OF THE
  7. 106 REM   ACTUAL STOCK MARKET RATHER THAN A COMPLETELY RANDOMIZED
  8. 107 REM   HAPPENING OF EVENTS.
  9. 108 REM
  10. 109 REM
  11. 110 PRINT CHR$(26) : WIDTH 120
  12. 111 PRINT "WHAT IS YOUR LUCKY NUMBER (1 TO 25000)"
  13. 112 INPUT A
  14. 113 IF A<1 OR A>25000 OR A<>INT(A) THEN PRINT "DO IT RIGHT !" : GOTO 111
  15. 114 PRINT CHR$(26)
  16. 115 PRINT "STAND BY FOR A FEW MOMENTS"
  17. 116 A=A MOD 97
  18. 117 FOR X=1 TO A : X1=RND(1) : X1=RND(X) : NEXT X
  19. 118 DIM A(36,12),U(11,9),E(11,9),K(10),T(10),F(9),M(4,12),X(4)
  20. 119 FOR I=1 TO 36: FOR J=1 TO 12: READ A(I,J): NEXT J: NEXT I
  21. 120 FOR I=1 TO 11: FOR J=1 TO 9: READ U(I,J): NEXT J: NEXT I
  22. 121 FOR I=1 TO 11: FOR J=1 TO 9: READ E(I,J): NEXT J: NEXT I
  23. 122 FOR N=1 TO 10
  24. 123 READ K(N)
  25. 124 NEXT N
  26. 125 V$="HIB XP SP ODMRD SO BT KA ZE BPL"
  27. 126 Y$="$5  $1  NONE$4  $7  NONENONE$2  $6  $3  "
  28. 127 REM
  29. 128 REM   DATA TO SIMULATE REAL LIFE STOCK MARKET
  30. 129 REM
  31. 130 DATA 1,0,0,0,0,0,0,0,0,5,0,0
  32. 131 DATA 0,0,0,0,0,0,-25,0,0,0,0,0
  33. 132 DATA 1,0,0,0,0,0,0,15,0,0,0,0
  34. 133 DATA 0,0,0,0,-5,0,0,0,0,0,0,0
  35. 134 DATA 1,0,0,0,0,0,0,0,0,5,0,0
  36. 135 DATA 0,0,0,0,0,0,5,0,0,0,0,0
  37. 136 DATA 1,0,0,0,0,0,10,0,0,0,0,0
  38. 137 DATA 0,0,10,0,0,0,0,0,0,0,0,0
  39. 138 DATA 1,0,0,0,0,0,15,0,0,0,0,0
  40. 139 DATA 0,0,-5,0,0,0,0,0,0,0,0,0
  41. 140 DATA 1,8,5,5,0,0,0,7,0,0,0,0
  42. 141 DATA 0,0,0,0,0,0,0,0,-25,0,0,0
  43. 142 DATA 1,0,0,0,0,0,0,0,10,0,0,0
  44. 143 DATA 0,0,-10,0,0,0,0,0,0,0,0,0
  45. 144 DATA 1,0,5,0,0,0,0,0,0,0,0,0
  46. 145 DATA 0,10,0,0,0,0,0,0,0,0,1,0
  47. 146 DATA 1,0,0,0,0,17,0,0,0,0,0,0
  48. 147 DATA 0,0,0,0,0,-15,0,0,0,0,0,0
  49. 148 DATA 1,0,0,0,0,0,0,0,10,0,0,0
  50. 149 DATA 0,0,0,0,0,0,0,-15,0,0,0,0
  51. 150 DATA 1,0,0,0,0,0,0,10,0,0,0,0
  52. 151 DATA 0,0,0,0,0,0,0,-15,0,0,0,0
  53. 152 DATA 1,0,0,-8,0,8,0,0,5,0,0,0
  54. 153 DATA 0,-10,0,0,0,0,0,0,0,0,0,0
  55. 154 DATA 1,8,0,0,0,0,0,0,0,0,0,0
  56. 155 DATA 0,0,0,0,0,0,0,-10,0,0,0,0
  57. 156 DATA 1,0,0,3,0,0,0,0,0,4,0,0
  58. 157 DATA 0,-8,0,0,0,0,0,0,0,0,0,0
  59. 158 DATA 1,0,0,0,5,0,0,0,0,0,0,0
  60. 159 DATA 0,0,0,0,0,-10,0,0,0,0,0,0
  61. 160 DATA 1,0,0,0,0,0,0,10,0,0,0,0
  62. 161 DATA 0,-8,-5,0,0,0,0,-7,0,0,0,0
  63. 162 DATA 1,10,0,0,0,0,0,0,0,0,0,0
  64. 163 DATA 0,0,0,0,0,0,0,0,0,-14,0,0
  65. 164 DATA 1,-10,0,0,0,0,0,0,0,0,0,0
  66. 165 DATA 0,0,0,0,0,0,-5,0,0,0,0,0
  67. 166 DATA -2,-10,7,-9,-2,-9,-7,-16,-4
  68. 167 DATA 26,16,25,8,-14,21,14,-4,17
  69. 168 DATA 18,23,11,12,46,18,-5,34,15
  70. 169 DATA 23,28,-2,11,56,19,30,29,14
  71. 170 DATA 20,15,15,7,-20,15,13,-10,12
  72. 171 DATA 17,21,13,-2,37,23,23,19,14
  73. 172 DATA 19,24,17,9,-5,26,13,-7,15
  74. 173 DATA 11,18,14,11,67,15,22,18,13
  75. 174 DATA 13,31,1,14,-11,18,18,-14,10
  76. 175 DATA 14,-8,19,1,-9,25,-10,13,19
  77. 176 DATA 24,24,23,20,51,27,38,33,18
  78. 177 DATA 12,14,13,10,10,20,21,25,8
  79. 178 DATA 7,-6,10,-10,30,6,-19,22,-2
  80. 179 DATA 9,10,7,-5,-20,12,21,18,7
  81. 180 DATA 7,8,5,-6,-40,3,16,-14,4
  82. 181 DATA 8,6,4,-4,40,8,4,-12,3
  83. 182 DATA 6,4,3,3,-15,5,8,-8,5
  84. 183 DATA 5,7,-1,-3,45,6,-10,10,4
  85. 184 DATA -2,6,-3,-8,-20,7,10,14,6
  86. 185 DATA 11,11,-5,-7,30,10,-11,-18,-4
  87. 186 DATA -5,13,-8,6,25,4,18,-22,-4
  88. 187 DATA -8,-10,-10,-15,-20,-20,-23,-25,-7
  89. 188 DATA 5,1,0,4,7,0,0,2,6,3
  90. 189 REM
  91. 190 REM   SECURITY NAMES
  92. 191 REM
  93. 192 A$="HIGHWAY IMPROVEMENT BONDS"
  94. 193 B$="X-PANDO CORPORATION"
  95. 194 C$="SEASIDE PROPERTIES INC."
  96. 195 D$="OLD DOG MUTUAL FUND"
  97. 196 E$="RUBBLE DEVELOPMENT"
  98. 197 F$="SLIPPERY OIL COMPANY"
  99. 198 G$="BUMPY TRANSPORT CO."
  100. 199 H$="KRASH AUTO COMPANY"
  101. 200 I$="ZAP ELECTRONICS   "
  102. 201 J$="BLINKEY POWER & LIGHT CO."
  103. 202 REM
  104. 203 REM
  105. 204 PRINT "WANT INSTRUCTIONS";
  106. 205 INPUT R$
  107. 206 IF LEFT$(R$,1)="N" THEN 230
  108. 207 IF LEFT$(R$,1)<>"Y" THEN 205
  109. 208 PRINT CHR$(26)
  110. 209 PRINT "THE MAIN OBJECT OF BLACK FRIDAY IS TO SHREWDLY INVEST $5000"
  111. 210 PRINT"IN THE GAME'S 10 SECURITIES, BUYING AND SELLING EACH YEAR FOR"
  112. 211 PRINT"A MAXIMUM OF 10 YEARS (ROUNDS) IN AN ATTEMPT TO BECOME"
  113. 212 PRINT"THE WEALTHIEST PLAYER."
  114. 213 PRINT
  115. 214 PRINT"EACH YEAR ALL PLAYERS WILL RECEIVE DIVIDENDS ON EVERY PAYING"
  116. 215 PRINT"STOCK WHICH IS WORTH $50 OR MORE."
  117. 216 PRINT
  118. 217 PRINT"IF THE VALUE OF ANY STOCK FALLS TO 0,THAT STOCK GOES BANKRUPT"
  119. 218 PRINT"AND ALL SHARES ARE SURRENDERED.THE VALUE OF THE STOCK IS THEN"
  120. 219 PRINT"ESTABLISHED AT $100. IF THE VALUE OF ANY STOCK REACHES $150,"
  121. 220 PRINT"THERE WILL BE A STOCK SPLIT."
  122. 221 PRINT
  123. 222 PRINT"A TABLE WILL BE PRINTED EACH YEAR GIVING THE CHANGE IN VALUE"
  124. 223 PRINT"OF EACH STOCK, THE PRESENT PRICE, AND THE NUMBER OF SHARES"
  125. 224 PRINT"EACH PLAYER OWNS OF EVERY STOCK. ALSO, ANY DIVIDENDS RECEIVED"
  126. 225 PRINT"FOR THE YEAR WILL BE SHOWN ALONG WITH EACH PLAYERS TOTAL CASH"
  127. 226 PRINT
  128. 227 PRINT "PRESS SPACE BAR TO PLAY"
  129. 228 WAIT 0,1,1
  130. 229 PRINT CHR$(26)
  131. 230 PRINT CHR$(26)
  132. 231 PRINT"AVAILABLE SECURITIES, ABBREVIATION, DIVIDENDS PER SHARE"
  133. 232 PRINT
  134. 233 FOR N=1 TO 10
  135. 234 GOSUB 417
  136. 235 PRINT S$,MID$(V$,3*N-2,3),MID$(Y$,4*N-3,4)
  137. 236 NEXT N
  138. 237 PRINT
  139. 238 INPUT "NUMBER OF PLAYERS (1 TO 4)="; P
  140. 239 IF P>4 THEN 243
  141. 240 IF P<=0 THEN 243
  142. 241 FOR I=1 TO 4: FOR J=1 TO 12: M(I,J)=0: NEXT J: NEXT I
  143. 242 INPUT "NUMBER OF YEARS (3 TO 10)="; S
  144. 243 IF S<3 THEN 249
  145. 244 IF S>10 THEN 249
  146. 245 PRINT CHR$(26)
  147. 246 FOR I=1 TO 9: F(I)=0: NEXT I
  148. 247 FOR N=1 TO P
  149. 248 M(N,1)=5000
  150. 249 NEXT N
  151. 250 FOR I=1 TO 10: T(I)=100: NEXT I
  152. 251 Y=0
  153. 252 REM
  154. 253 REM
  155. 254 REM   FIND MARKET CHANGES FOR NEXT ROUND,SEE IF BULL OR BEAR MARKET
  156. 255 REM
  157. 256 D=INT(RND(1)*11+1)
  158. 257 C=INT(RND(1)*36+1)
  159. 258 IF A(C,12)=1 THEN 257
  160. 259 A(C,12)=1
  161. 260 FOR N=2 TO 10
  162. 261 GOSUB 417
  163. 262 IF A(C,1)=1 THEN 267
  164. 263 W$="BEAR"
  165. 264 F(N-1)=A(C,N)+E(D,N-1)
  166. 265 T(N)=T(N)+F(N-1)
  167. 266 GOTO 273
  168. 267 F(N-1)=A(C,N)+U(D,N-1)
  169. 268 W$="BULL"
  170. 269 T(N)=T(N)+F(N-1)
  171. 270 REM
  172. 271 REM   CHECK FOR STOCK SPLITS
  173. 272 REM
  174. 273 IF T(N)<150 THEN 285
  175. 274 PRINT "*** "+S$+" STOCKS SPLIT ***"
  176. 275 IF T(N)/2=INT(T(N)/2) THEN 278
  177. 276 T(N)=INT(T(N)/2)+1
  178. 277 GOTO 279
  179. 278 T(N)=T(N)/2
  180. 279 FOR J=1 TO P
  181. 280 M(J,N+1)=M(J,N+1)*2
  182. 281 NEXT J
  183. 282 REM
  184. 283 REM   CHECK FOR BANKRUPT STOCKS
  185. 284 REM
  186. 285 IF T(N)>0 THEN 292
  187. 286 T(N)=100
  188. 287 FOR J=1 TO P
  189. 288 M(J,N+1)=0
  190. 289 NEXT J
  191. 290 PRINT "*** "+S$+" WENT BANKRUPT ***"
  192. 291 PRINT "THESE STOCKS MUST BE SURRENDERED"
  193. 292 NEXT N
  194. 293 Y=Y+1
  195. 294 REM
  196. 295 REM   ADD EACH PLAYERS DIVIDENDS TO TOTAL CASH
  197. 296 REM
  198. 297 FOR N=1 TO P
  199. 298 M(N,12)=0
  200. 299 FOR J=1 TO 10
  201. 300 IF T(J)<50 THEN 302
  202. 301 M(N,12)=M(N,12)+K(J)*M(N,J+1)
  203. 302 NEXT J
  204. 303 IF A(C,11)=0 THEN 306
  205. 304 M(N,12)=M(N,12)+M(N,3)*2
  206. 305 PRINT "*** X-PANDO CORP. PAYS $2 DIVIDENDS PER SHARE ***"
  207. 306 M(N,1)=M(N,1)+M(N,12)
  208. 307 NEXT N
  209. 308 REM
  210. 309 REM
  211. 310 REM   PRINT WHAT HAPPENED & CURRENT VALUES
  212. 311 REM
  213. 312 PRINT CHR$(26) : PRINT "*** YEAR ";Y;"*** "+W$+" MARKET ***"
  214. 313 PRINT TAB(23);"PLAYER HOLDINGS    YEAR ";Y
  215. 314 PRINT TAB(6);" +/-$    PRICE";
  216. 315 FOR N=1 TO P
  217. 316 PRINT TAB(18+8*N);N;
  218. 317 NEXT N
  219. 318 PRINT
  220. 319 PRINT LEFT$(V$,3);TAB(8);"0";TAB(16);"100";
  221. 320 FOR N=1 TO P
  222. 321 PRINT TAB(18+8*N);M(N,2);
  223. 322 NEXT N
  224. 323 PRINT
  225. 324 FOR N=1 TO 9
  226. 325 PRINT MID$(V$,3*N+1,3);TAB(7);F(N);TAB(15);T(N+1);
  227. 326 FOR J=1 TO P
  228. 327 PRINT TAB(18+8*J);M(J,N+2);
  229. 328 NEXT J
  230. 329 PRINT
  231. 330 NEXT N
  232. 331 PRINT
  233. 332 PRINT "DIVIDENDS FOR YEAR";
  234. 333 FOR N=1 TO P
  235. 334 PRINT TAB(18+8*N);M(N,12);
  236. 335 NEXT N
  237. 336 PRINT
  238. 337 PRINT "NEW CASH TOTAL";
  239. 338 FOR N=1 TO P
  240. 339 PRINT TAB(18+8*N);M(N,1);
  241. 340 NEXT N
  242. 341 PRINT
  243. 342 PRINT "NEW NET WORTH ";
  244. 343 GOSUB 438
  245. 344 FOR N=1 TO P
  246. 345 PRINT TAB(18+8*N);X(N);
  247. 346 NEXT N
  248. 347 IF Y=S THEN 391
  249. 348 REM
  250. 349 REM
  251. 350 REM   CHECK IF ANYONE WANTS TO SELL OR BUY ANYTHING
  252. 351 REM
  253. 352 FOR N=1 TO P
  254. 353 PRINT
  255. 354 PRINT "***  PLAYER ";N;" ***"
  256. 355 PRINT "YOU NOW HAVE $";M(N,1)
  257. 356 FOR J=1 TO 10
  258. 357 IF M(N,J+1)<>0 THEN 360
  259. 358 NEXT J
  260. 359 GOTO 371
  261. 360 INPUT "WANT TO SELL"; R$
  262. 361 IF R$="N" THEN 371
  263. 362 IF R$<>"Y" THEN 374
  264. 363 GOSUB 406
  265. 364 INPUT "NUMBER OF SHARES"; R
  266. 365 IF R<=M(N,J+1) THEN 368
  267. 366 PRINT "*** YOU ONLY HAVE ";M(N,J+1);" SHARES ***"
  268. 367 GOTO 364
  269. 368 M(N,J+1)=M(N,J+1)-R
  270. 369 M(N,1)=M(N,1)+R*T(J)
  271. 370 GOTO 355
  272. 371 FOR J=1 TO 10
  273. 372 IF M(N,1)>T(J) THEN 375
  274. 373 NEXT J
  275. 374 GOTO 387
  276. 375 INPUT "WANT TO BUY"; R$
  277. 376 IF R$="N" THEN 387
  278. 377 IF R$<>"Y" THEN 393
  279. 378 GOSUB 406
  280. 379 INPUT "NUMBER OF SHARES"; R
  281. 380 IF R*T(J)<=M(N,1) THEN 383
  282. 381 PRINT "ONLY MONEY ENOUGH FOR ";INT(M(N,1)/T(J));"SHARES"
  283. 382 GOTO 379
  284. 383 M(N,J+1)=M(N,J+1)+R
  285. 384 M(N,1)=M(N,1)-R*T(J)
  286. 385 PRINT "YOU NOW HAVE $";M(N,1)
  287. 386 GOTO 371
  288. 387 NEXT N
  289. 388 GOTO 256
  290. 389 REM
  291. 390 REM
  292. 391 REM   CLOSING OUT AT END OF GAME - PRINT FINAL TOTALS
  293. 392 REM
  294. 393 PRINT
  295. 394 PRINT "*** FINAL TOTALS ARE:"
  296. 395 PRINT "PLAYER          TOTAL"
  297. 396 FOR N=1 TO P
  298. 397 FOR J=1 TO 10
  299. 398 M(N,1)=M(N,1)+T(J)*M(N,J+1)
  300. 399 NEXT J
  301. 400 PRINT
  302. 401 PRINT N,M(N,1)
  303. 402 NEXT N
  304. 403 GOTO 446
  305. 404 REM
  306. 405 REM
  307. 406 REM   SUBROUTINE TO LOOK UP STOCK NAMES FOR BUY & SELL
  308. 407 REM
  309. 408 PRINT "NAME OF STOCK";
  310. 409 INPUT R$
  311. 410 FOR J=1 TO 10
  312. 411 IF LEFT$(R$,2)=MID$(V$,3*J-2,2) THEN 415
  313. 412 IF LEFT$(R$,2)=MID$(V$,3*J-1,2) THEN 415
  314. 413 NEXT J
  315. 414 GOTO 408
  316. 415 RETURN
  317. 416 REM
  318. 417 ON N GOTO 418,420,422,424,426,428,430,432,434,436
  319. 418 S$=A$
  320. 419 RETURN
  321. 420 S$=B$
  322. 421 RETURN
  323. 422 S$=C$
  324. 423 RETURN
  325. 424 S$=D$
  326. 425 RETURN
  327. 426 S$=E$
  328. 427 RETURN
  329. 428 S$=F$
  330. 429 RETURN
  331. 430 S$=G$
  332. 431 RETURN
  333. 432 S$=H$
  334. 433 RETURN
  335. 434 S$=I$
  336. 435 RETURN
  337. 436 S$=J$
  338. 437 RETURN
  339. 438 FOR N=1 TO P
  340. 439 W=0
  341. 440 FOR J=1 TO 10
  342. 441 W=W+T(J)*M(N,J+1)
  343. 442 NEXT J
  344. 443 X(N)=W+M(N,1)
  345. 444 NEXT N
  346. 445 RETURN
  347. 446 RESET
  348.