0010 REM PROGRAM TO SIMULATE STOCK MARKET 0020 REM SOURCE IS BYTE MAGAZINE JAN 77 0090 RANDOMIZE 0100 DIM S$[23](10),V$[3](10),Y$[4](10),W$[4],R$[2] 0105 DIM A(36,12),U(11,9),E(11,9),I(10),T(10),F(9),M(4,12) 0110 FOR K=1 TO 36 0111 FOR J=1 TO 12 0112 READ A(K,J) 0114 NEXT J 0115 NEXT K 0120 FOR K=1 TO 11 0121 FOR J=1 TO 9 0122 READ U(K,J) 0123 NEXT J 0124 NEXT K 0130 FOR K=1 TO 11 0131 FOR J=1 TO 9 0132 READ E(K,J) 0133 NEXT J 0134 NEXT K 0140 FOR K=1 TO 10 0141 READ I(K) 0142 NEXT K 0143 FOR K=1 TO 10 0144 READ S$(K) 0145 NEXT K 0146 FOR K=1 TO 10 0147 READ V$(K) 0148 NEXT K 0149 FOR K=1 TO 10 0150 READ Y$(K) 0151 NEXT K 0152 REM DATA TO SUMULATE STOCK MARKET 0160 DATA 1,0,0,0,0,0,0,0,0,5,0,0 0170 DATA 0,0,0,0,0,0,-25,0,0,0,0,0 0180 DATA 1,0,0,0,0,0,0,15,0,0,0,0 0190 DATA 0,0,0,0,-5,0,0,0,0,0,0,0 0200 DATA 1,0,0,0,0,0,0,0,0,5,0,0 0210 DATA 0,0,0,0,0,0,5,0,0,0,0,0 0220 DATA 1,0,0,0,0,0,10,0,0,0,0,0 0230 DATA 0,0,10,0,0,0,0,0,0,0,0,0 0240 DATA 1,0,0,0,0,0,15,0,0,0,0,0 0250 DATA 0,0,-5,0,0,0,0,0,0,0,0,0 0260 DATA 1,8,5,5,0,0,0,7,0,0,0,0 0270 DATA 0,0,0,0,0,0,0,0,-25,0,0,0 0280 DATA 1,0,0,0,0,0,0,0,10,0,0,0 0290 DATA 0,0,-10,0,0,0,0,0,0,0,0,0 0300 DATA 1,0,5,0,0,0,0,0,0,0,0,0 0310 DATA 0,10,0,0,0,0,0,0,0,0,1,0 0320 DATA 1,0,0,0,0,17,0,0,0,0,0,0 0330 DATA 0,0,0,0,0,-15,0,0,0,0,0,0 0340 DATA 1,0,0,0,0,0,0,0,10,0,0,0 0350 DATA 0,0,0,0,0,0,0,-15,0,0,0,0 0360 DATA 1,0,0,0,0,0,0,10,0,0,0,0 0370 DATA 0,0,0,0,0,0,0,-15,0,0,0,0 0380 DATA 1,0,0,-8,0,8,0,0,5,0,0,0 0390 DATA 0,-10,0,0,0,0,0,0,0,0,0,0 0400 DATA 1,8,0,0,0,0,0,0,0,0,0,0 0410 DATA 0,0,0,0,0,0,0,-5,0,0,0,0 0420 DATA 1,0,0,3,0,0,0,0,0,4,0,0 0430 DATA 0,-8,0,0,0,0,0,0,0,0,0,0 0440 DATA 1,0,0,0,5,0,0,0,0,0,0,0 0450 DATA 0,0,0,0,0,-10,0,0,0,0,0,0 0460 DATA 1,0,0,0,0,0,0,10,0,0,0,0 0470 DATA 0,-8,-5,0,0,0,0,0,-7,0,0,0 0480 DATA 1,10,0,0,0,0,0,0,0,0,0,0 0490 DATA 0,0,0,0,0,0,0,0,0,-14,0,0 0500 DATA 1,-10,0,0,0,0,0,0,0,0,0,0 0510 DATA 0,0,0,0,0,0,-5,0,0,0,0,0 0520 DATA -2,-10,-7,-9,-2,-9,-7,-16,-4 0530 DATA 26,16,25,8,-14,21,14,-4,17 0540 DATA 18,23,11,12,46,18,-5,34,15 0550 DATA 23,28,-2,11,56,19,30,29,14 0560 DATA 20,15,15,7,-20,15,13,-10,12 0570 DATA 17,21,13,-2,37,23,23,19,14 0580 DATA 19,24,17,9,-5,26,13,-7,15 0590 DATA 11,18,14,11,67,15,22,18,13 0600 DATA 13,31,1,14,-11,18,18,-14,10 0610 DATA 14,-8,19,-1,-9,25,-10,13,19 0620 DATA 24,24,23,20,51,27,38,33,18 0630 DATA 12,14,13,10,10,20,21,25,8 0640 DATA 7,-6,10,-10,30,6,-19,22,-2 0650 DATA 9,10,7,-5,-20,12,21,18,7 0660 DATA 7,8,5,-6,-40,3,16,-14,4 0670 DATA 8,6,4,-4,40,8,4,-12,3 0680 DATA 6,4,3,3,-15,5,8,-8,5 0690 DATA 5,7,-1,-3,46,6,-10,10,4 0700 DATA -2,6,-3,-8,-20,7,10,14,6 0710 DATA 11,11,-5,-7,30,10,-11,-18,-4 0720 DATA -5,13,-8,6,25,4,18,-22,-4 0730 DATA -8,-10,-10,-15,-20,-20,-23,-25,-7 0740 DATA 5,1,0,4,7,0,0,2,6,3 0800 REM NAMES, ABBREVIATIONS AND DIVIDENDS 0810 DATA HIGHWAY BONDS 0820 DATA X-PANDO CORPORATION 0830 DATA SEASIDE PROPERTIES INC 0840 DATA OLD DOG MUTUAL FUND 0850 DATA RUBBLE DEVELOPMENT 0860 DATA SLIPPERY OIL COMPANY 0870 DATA BUMPY TRANSPORT CO. 0880 DATA KRASH AUTO COMPANY 0890 DATA ZAP ELECTRONICS 0900 DATA BLINKEY POWER & LIGHT 0910 DATAHIB,XP ,SP ,ODM,RD ,SO ,BT ,KA ,ZE ,BPL 0920 DATA $5 , $1 ,NONE, $4 , $7 ,NONE,NONE, $2 , $6 , $3 0980 PRINT "DO YOU NEED INSTRUCTIONS "; 0990 INPUT R$ 1000 IF R$="NO" THEN GOTO 1280 1020 PRINT 1030 PRINT "THE MAIN OBJECTIVE OF BLACK FRIDAY IS TO SHREWDLY INVEST $5,000" 1040 PRINT "IN THE GAME'S 10 SECURITIES, BUYING AND SELLING EACH YEAR FOR" 1050 PRINT "A MAXIMUM OF 10 YEARS (ROUNDS) IN AN ATTEMPT TO BECOME THE" 1060 PRINT "WEALTHIEST PLAYER" 1070 PRINT 1080 PRINT "EACH YEAR ALL PLAYERS WILL RECEIVE DIVIDENDS ON EVERY PAYING" 1090 PRINT "STOCK WHICH IS WORTH $50 OR MORE. THEN EACH PLAYER WILL GET A" 1100 PRINT "CHANCE TO SELL ANY STOCKS HE OWNS OR BUY ANY STOCKS HE WISHES." 1120 PRINT "AT THE END OF THE SELECTED NUMBER OF YEARS, EACH PLAYER'S NET" 1130 PRINT "WORTH WILL BE CALCULATED AND THE WEALTHIEST PLAYER WINS !!" 1140 PRINT 1150 PRINT "IF THE VALUE OF ANY STOCK FALLS TO $0, THAT STOCK GOES BANKRUPT" 1160 PRINT "AND ALL SHARES ARE SURRENDERED. THE VALUE OF THE STOCK IS THEN" 1170 PRINT "RE-ESTABLISHED AT $100. IF THE VALUE OF ANY STOCK REACHES $150," 1180 PRINT "THERE WILL BE A STOCK SPLIT. ANY PLAYERS OWNING SHARES OF THAT" 1190 PRINT "STOCK WILL RECIEVE THE EXTRA SHARES. THE VALUE OF THE STOCK IS" 1200 PRINT "HALVED (ROUNDED UP TO NEXT HIGHEST DOLLAR VALUE)." 1210 PRINT 1220 PRINT "A TABLE WILL BE PRINTED EACH YEAR LISTING THE CHANGE IN VALUE" 1230 PRINT "OF EACH STOCK, THE CURRENT PRICE, AND THE NUMBER OF SHARES EACH" 1240 PRINT "PLAYER OWNS OF EVERY STOCK.ALSO, ANY DIVIDENDS RECEIVED FOR THE" 1250 PRINT "YEAR WILL BE SHOWN ALONG WITH EACH PLAYER'S TOTAL CASH-ON-HAND" 1260 PRINT 1270 PRINT "*************GOOD LUCK YOU BUDDING MARKET FREAKS***************" 1280 PRINT 1290 PRINT "AVAILABLE SECURITIES","ABBREVIATION","DIVIDENDS/SHARE" 1300 PRINT 1310 FOR N=1 TO 10 1320 PRINT S$(N),V$(N),Y$(N) 1330 NEXT N 1340 PRINT 1350 PRINT "NUMBER OF PLAYERS (1 TO 4) "; 1360 INPUT P 1370 IF P>4 THEN GOTO 1350 1380 IF P<1 THEN GOTO 1350 1390 FOR J=1 TO P 1391 FOR K=1 TO 12 1392 M(J,K)=0 1393 NEXT K 1394 NEXT J 1400 PRINT 1410 PRINT "NUMBER OF YEARS (3 TO 10) "; 1420 INPUT S 1430 IF S<3 GOTO 1410 1440 IF S>10 GOTO 1410 1450 FOR J=1 TO 9 1451 F(J)=0 1452 NEXT J 1460 FOR N=1 TO P 1470 M(N,1)=5000 1480 NEXT N 1500 FOR N=1 TO 10 1501 T(N)=100 1502 NEXT N 1540 REM LOOK AT CRYSTAL BALL SEE IF NEXT ROUND BULL OR BEAR 1560 D=INT(11*RND(0)+1) 1570 C=INT(36*RND(0)+1) 1580 IF A(C,12)=1 THEN GOTO 1570 1590 A(C,12)=1 1600 FOR N=2 TO 10 1610 IF A(C,1)=1 GOTO 1660 1620 W$="BEAR" 1630 F(N-1)=A(C,N)+E(D,N-1) 1640 T(N)=T(N)+F(N-1) 1650 GOTO 1720 1660 F(N-1)=A(C,N)+U(D,N-1) 1670 W$="BULL" 1680 T(N)=T(N)+F(N-1) 1700 REM CHECK FOR STOCK SPLITS 1720 IF T(N)<150 THEN GOTO 1840 1730 PRINT "***";S$(N);" STOCKS SPLIT ***" 1740 IF T(N)/2=INT(T(N)/2) THEN GOTO 1770 1750 T(N)=INT(T(N)/2)+1 1760 GOTO 1780 1770 T(N)=T(N)/2 1780 FOR J=1 TO P 1790 M(J,N+1)=M(J,N+1)*2 1800 NEXT J 1820 REM CHECK FOR BANKRUPT STOCKS 1840 IF T(N)>0 THEN GOTO 1910 1850 T(N)=100 1860 FOR J=1 TO P 1870 M(J,N+1)=0 1880 NEXT J 1890 PRINT "***";S$(N);" WENT BANKRUPT ***" 1900 PRINT "THESE STOCKS MUST BE SURRENDERED" 1910 NEXT N 1920 Y=Y+1 1940 REM ADD EACH PLAYER'S DIVIDENDS TO TOTAL CASH 1960 FOR N=1 TO P 1970 M(N,12)=0 1980 FOR J=1 TO 10 1990 IF T(J)<50 THEN GOTO 2010 2000 M(N,12)=M(N,12)+(I(J)*M(N,J+1)) 2010 NEXT J 2020 IF A(C,11)=0 THEN GOTO 2050 2030 M(N,12)=M(N,12)+(M(N,3)*2) 2040 PRINT "*** X-PANDO CORP. PAYS $2 DIVIDEND PER SHARE ***" 2050 M(N,1)=M(N,1)+M(N,12) 2060 NEXT N 2090 REM PRINT WHAT HAPPENED AND CURRENT VALUES 2110 PRINT 2120 PRINT "*** YEAR ";Y;" *** ";W$;" MARKET ***" 2130 PRINT 2140 PRINT " "," "," PLAYER - HOLDINGS" 2150 PRINT 2160 PRINT " +/-$","PRICE", 2170 FOR N=1 TO P 2180 PRINT N, 2190 NEXT N 2200 PRINT 2210 PRINT 2220 PRINT V$(1);" ";0,100, 2230 FOR N=1 TO P-1 2240 PRINT M(N,2), 2250 NEXT N 2260 PRINT M(P,2) 2270 FOR N=1 TO 9 2280 PRINT V$(N+1);" ";F(N),T(N+1), 2310 FOR J=1 TO P-1 2320 PRINT M(J,N+2), 2330 NEXT J 2340 PRINT M(P,N+2) 2350 NEXT N 2360 PRINT 2370 PRINT "DIVIDENDS FOR YEAR", 2380 FOR N=1 TO P-1 2390 PRINT M(N,12), 2400 NEXT N 2410 PRINT M(P,12) 2420 PRINT 2430 PRINT "NEW CASH TOTAL", 2440 FOR N=1 TO P-1 2450 PRINT M(N,1), 2460 NEXT N 2470 PRINT M(P,1) 2480 IF Y=S THEN GOTO 3000 2510 REM CHECK FOR BUY'S AND SELL'S 2530 FOR N=1 TO P 2540 PRINT 2550 PRINT "*** PLAYER ";N;" ***" 2560 PRINT "YOU NOW HAVE $";M(N,1) 2580 FOR J=1 TO 10 2590 IF M(N,J+1)<>0 THEN GOTO 2620 2600 NEXT J 2610 GOTO 2770 2620 PRINT "DO YOU WANT TO SELL ANY SHARES (YES OR NO) "; 2630 INPUT R$ 2640 IF R$="NO" THEN GOTO 2760 2650 IF R$<>"YE" THEN GOTO 2620 2660 GOSUB 3160 2670 PRINT "NUMBER OF SHARES SELLING "; 2680 INPUT R 2690 IF R<=M(N,J+1)THEN GOTO 2730 2700 PRINT "*** YOU ONLY HAVE ";M(N,J+1);" SHARES TO SELL ***" 2710 GOTO 2670 2720 PRINT 2730 M(N,J+1)=M(N,J+1)-R 2740 M(N,1)=M(N,1)+(R*T(J)) 2750 GOTO 2560 2760 PRINT 2770 FOR J=1 TO 10 2780 IF M(N,1)>T(J) THEN GOTO 2810 2790 NEXT J 2800 GOTO 2950 2810 PRINT "DO YOU WANT TO BUY ANY SHARES (YES OR NO) "; 2820 INPUT R$ 2830 IF R$="NO" THEN GOTO 2950 2840 IF R$<>"YE" THEN GOTO 2810 2850 GOSUB 3160 2860 PRINT "NUMBER OF SHARES BUYING "; 2870 INPUT R 2880 IF R*T(J)<=M(N,1) THEN GOTO 2910 2890 PRINT "*** YOU DON'T HAVE ENOUGH MONEY FOR ";R;" SHARES ***" 2900 GOTO 2860 2910 M(N,J+1)=M(N,J+1)+R 2920 M(N,1)=M(N,1)-(R*T(J)) 2930 PRINT "YOU NOW HAVE ";M(N,1) 2940 GOTO 2760 2950 NEXT N 2960 GOTO 1560 3000 REM CLOSING OUT GAME, PRINT FINAL TOTALS 3010 PRINT 3020 PRINT 3030 PRINT "*** YOUR FINAL TOTALS ARE ***" 3040 PRINT 3050 PRINT " ","PLAYER","TOTALS" 3060 FOR N=1 TO P 3070 FOR J=1 TO 10 3080 M(N,1)=M(N,1)+(T(J)*M(N,J+1)) 3090 NEXT J 3100 PRINT 3110 PRINT " ",N,M(N,1) 3120 NEXT N 3130 STOP 3160 REM SUB TO LOOK UP STOCK NAMES FOR BUY/SELL SEQUENCE 3180 PRINT "NAME OF STOCK "; 3190 INPUT R$ 3200 FOR J=1 TO 10 3210 IF R$=SBS$(V$(J),1,2) THEN GOTO 3240 3220 NEXT J 3230 GOTO 3190 3240 RETURN 3250 END