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