! STAR TRADERS ! A simple game in which the main objective is to make more money ! than your opponents. For directions, compile the program and enter a ! Y when it asks if you need help. ! ! - ORIGINALLY MODIFIED FOR 'ALTAIR BASIC 4.0' BY - S J SINGER ! - MODIFIED FOR AlphaBASIC by Joseph G. Ponyik ! - Cleveland Public Power ! - 1201 Lakeside Ave. ! - Cleveland, Ohio 44114 SIGNIFICANCE 11 MAP1 B(6),F MAP1 C,F MAP1 C(5),F MAP1 R(5),F MAP1 I,F MAP1 S(6,4),F STRSIZ 100 40 DIM M(10,13),N$(6),D1(6),S1(6),Q(6),M$(12),C$(25) 50 DIM C1$(25),C2$(25) 60 DATA 1,"'ALTAIR STARWAYS'" 70 DATA 2,"'BETELGEUSE,LTD.'" 80 DATA 3,"'CAPELLA FREIGHT CO.'" 90 DATA 4,"'DENEBOLA SHIPPERS'" 100 DATA 5,"'ERIDANI EXPEDITERS'" 105 DATA 6,"'FLIMFLAM FEDERAL'" 110 Z1$=CHR$(26)+CHR$(0) 120 ? Z1$ 130 FOR I=1 TO 6 140 FOR J=1 TO 4 150 S(I,J)=0 151 D1(I)=0 152 S1(I)=100 153 Q(I)=0 154 B(I)=6000 160 NEXT J 170 NEXT I 180 L$=".+*ABCDE" 190 M$="ABCDEFGHIJKL" 192 ? TAB(-1,0); 195 ? " ********** STAR TRADERS **********":? 197 ?:? 200 INPUT "TYPE A 3 DIGIT NUMBER ";R1 220 R1=RND(-R1/1000) 230 FOR I=1 TO 9 240 FOR J=1 TO 12 250 IF INT(20*RND(R1)+1)<>10 THEN M(I,J)=1 ELSE M(I,J)=3 260 NEXT J 270 NEXT I 280 ? Z1$ 290 INPUT "HOW MANY PLAYERS? (2-4) ";P1 300 ?:? 310 INPUT "DOES ANY PLAYER NEED INSTRUCTIONS? ";Q$ 320 IF Q$ ="Y" THEN GOSUB 3410 330 ? Z1$ 340 FOR I=1 TO P1 350 ? "PLAYER",I, 370 INPUT " WHAT IS YOUR NAME ";P$ 380 IF I=1 THEN P1$=P$ 390 IF I=2 THEN P2$=P$ 400 IF I=3 THEN P3$=P$ 410 IF I=4 THEN P4$=P$ 420 NEXT I 430 ? Z1$ 440 ? TAB(10),"...NOW I WILL DECIDE WHO GOES FIRST...":?:? 445 ?:? 450 ?:?:? 460 I=INT(P1*RND(R1)+1) 470 GOSUB 490 480 GOTO 550 490 ? 500 ON I GOTO 510,520,530,540 ! - IDENTIFY PLAYER 510 ? P1$;:P5$=P1$: RETURN 520 ? P2$;:P5$=P2$: RETURN 530 ? P3$;:P5$=P3$: RETURN 540 ? P4$;:P5$=P4$: RETURN 550 ? " IS THE FIRST PLAYER TO MOVE." 560 FOR W=1 TO 2000: NEXT 570 K=0 580 P=I:GOTO 610 590 K=K+1: IF K=48 THEN 4450 600 P=P+1: IF P=P1+1 THEN P=1 610 FOR I=1 TO 5 ! SELECT 5 LEGAL MOVES 620 R(I)=INT(9*RND(R1)+1) 630 C(I)=INT(12*RND(R1)+1) 635 IF I=1 THEN GOTO 670 640 FOR I1=I-1 TO 1 STEP -1 650 IF R(I)=R(I1) AND C(I)=C(I1) THEN 620 660 NEXT I1 670 IF M(R(I),C(I))>1 THEN 620 680 FOR I1=1 TO 5 690 IF Q(I1)=0 THEN 870 700 NEXT I1 710 IF M(R(I),C(I)+1)>3 THEN 870 720 IF C(I)>1 THEN IF M(R(I),C(I)-1)>3 THEN 870 730 IF M(R(I)+1,C(I))>3 THEN 870 740 IF R(I)>1 THEN IF M(R(I)-1,C(I))>3 THEN 870 750 A1=M(R(I),C(I)+1) 760 IF C(I)>1 THEN A2=M(R(I),C(I)-1) ELSE A2=0 770 A3=M(R(I)+1,C(I)) 780 IF R(I)>1 THEN A4=M(R(I)-1,C(I)) ELSE A4=0 790 IF A1=2 AND A2<4 AND A3<4 AND A4<4 THEN 620 800 IF A2=2 AND A1<4 AND A3<4 AND A4<4 THEN 620 810 IF A3=2 AND A1<4 AND A2<4 AND A4<4 THEN 620 820 IF A4=2 AND A1<4 AND A2<4 AND A3<4 THEN 620 830 IF A1=3 AND A2<4 AND A3<4 AND A4<4 THEN 620 840 IF A2=3 AND A1<4 AND A3<4 AND A4<4 THEN 620 850 IF A3=3 AND A1<4 AND A2<4 AND A4<4 THEN 620 860 IF A4=3 AND A1<4 AND A2<4 AND A3<4 THEN 620 870 NEXT I 880 GOSUB 2060 890 ? 900 I=P 910 GOSUB 490 920 ? ", HERE ARE YOUR LEGAL MOVES FOR THIS TURN" 930 ? 940 FOR I=1 TO 5 950 ? STR(R(I));MID$(M$,C(I),1);" "; 960 NEXT I 970 ?:? 980 INPUT "WHAT IS YOUR MOVE ";R$ 990 IF LEN(R$)=0 THEN R$="S" 1000 IF LEFT$(R$,1)="M" THEN R$="" ELSE GOTO 1030 1010 GOSUB 2060 1020 GOTO 900 1030 IF LEFT$(R$,1)="S" THEN R$="" ELSE GOTO 1060 1040 GOSUB 3230 1050 GOTO 900 1060 IF LEN(R$)<>2 THEN 1110 1070 IF ASC(MID$(R$,2,1))-64<1 THEN 1110 1080 IF ASC(MID$(R$,2,1))-64>12 THEN 1110 ELSE GOTO 1120 1090 IF VAL(R$)<1 THEN 1110 1100 IF VAL(R$)>9 THEN 1110 1110 ? "I DIDN'T UNDERSTAND THAT - TRY AGAIN ": GOTO 980 1120 R=VAL(LEFT$(R$,1)) 1130 C=ASC(RIGHT$(R$,1))-64 1140 FOR I= 1 TO 5 1150 IF R=R(I) AND C=C(I) THEN 1190 1160 NEXT I 1170 ? "THAT SPACE WAS NOT INCLUDED IN THE LIST..." 1180 GOTO 980 1190 IF R>1 THEN A1=M(R-1,C) ELSE A1=0 1200 A2=M(R+1,C) 1210 A3=M(R,C+1) 1220 IF C>1 THEN A4=M(R,C-1) ELSE A4=0 1230 IF A1<=1 AND A2<=1 AND A3<=1 AND A4<=1 THEN M(R,C)=2 ELSE GOTO 1250 1240 GOTO 1760 1250 IF A1>3 AND A2>3 AND A2<>A1 THEN GOSUB 2220 ! LINE 2090 IS 1260 IF A1>3 AND A3>3 AND A3<>A1 THEN GOSUB 2220 ! THE MERGER SUB. 1270 IF A1>3 AND A4>3 AND A4<>A1 THEN GOSUB 2220 1280 IF A2>3 AND A3>3 AND A3<>A2 THEN GOSUB 2220 1290 IF A2>3 AND A4>3 AND A4<>A2 THEN GOSUB 2220 1300 IF A3>3 AND A4>3 AND A4<>A3 THEN GOSUB 2220 1310 IF A1<4 AND A2<4 AND A3<4 AND A4<4 THEN 1410 1320 IF M(R,C)>3 THEN 1760 1330 IF A1>3 THEN I=A1-3 1340 IF A2>3 THEN I=A2-3 1350 IF A3>3 THEN I=A3-3 1360 IF A4>3 THEN I=A4-3 1370 Q(I)=Q(I)+1 1380 S1(I)=S1(I)+100 1390 M(R,C)=I+3 1400 GOTO 1570 1410 FOR I=1 TO 5 1420 IF Q(I)=0 THEN 1460 1430 NEXT I 1440 IF M(R,C)<3 THEN M(R,C)=2 1450 GOTO 1760 1460 ? Z1$ 1470 GOSUB 3370 1480 ? "A NEW SHIPPING COMPANY HAS BEEN FORMED !" 1490 ? "IT'S NAME IS ", 1510 READ N,C$ 1515 IF N=6 THEN RESTORE 1520 IF I<>N THEN 1510 1530 ? C$ 1540 S(I,P)=S(I,P)+5 1550 Q(I)=1 1560 ?:?:?:? 1570 IF A1=3 THEN S1(I)=S1(I)+500 1580 IF A2=3 THEN S1(I)=S1(I)+500 1590 IF A3=3 THEN S1(I)=S1(I)+500 1600 IF A4=3 THEN S1(I)=S1(I)+500 1610 IF A1=2 THEN S1(I)=S1(I)+100 ELSE GOTO 1640 1620 Q(I)=Q(I)+1 1630 M(R-1,C)=I+3 1640 IF A2=2 THEN S1(I)=S1(I)+100 ELSE GOTO 1670 1650 Q(I)=Q(I)+1 1660 M(R+1,C)=I+3 1670 IF A3=2 THEN S1(I)=S1(I)+100 ELSE GOTO 1700 1680 Q(I)=Q(I)+1 1690 M(R,C+1)=I+3 1700 IF A4=2 THEN S1(I)=S1(I)+100 ELSE GOTO 1730 1710 Q(I)=Q(I)+1 1720 M(R,C-1)=I+3 1730 IF S1(I)>=3000 THEN T1=I ELSE GOTO 1750 1740 GOSUB 3100 1750 M(R,C)=I+3 1760 FOR I=1 TO 5 1770 B(P)=B(P)+INT(.05*S(I,P)*S1(I)) 1780 NEXT I 1790 FOR I=1 TO 5 1800 IF Q(I)=0 THEN 2040 1810 ?:? "YOUR CURRENT CASH= $";B(P) 1820 ?:? "BUY HOW MANY SHARES OF "; 1830 RESTORE 1840 READ N,C$ 1850 IF I<>N THEN 1840 1860 ? C$; 1870 ? " AT $";S1(I) 1880 ? TAB(5); "YOU NOW OWN ";S(I,P); 1890 INPUT R3$:IF LEN(R3$)=0 THEN R3$="0" 1900 IF R3$(1,1)="M" THEN R3$="" ELSE GOTO 1930 1910 GOSUB 2060 1920 GOTO 1810 1930 IF R3$(1,1)="S" THEN R3$="" ELSE GOTO 1960 1940 GOSUB 3230 1950 GOTO 1810 1960 R3=VAL(R3$) 1970 R3$="" 1980 IF R3*S1(I)<=B(P) THEN 2010 1990 ? "YOU ONLY HAVE $";B(P);" - TRY AGAIN" 2000 GOTO 1810 2010 IF R3=0 THEN 2040 2020 S(I,P)=S(I,P)+R3 2030 B(P)=B(P)-(R3*S1(I)) 2040 NEXT I 2050 GOTO 590 2060 ? Z1$ ! SUBROUTINE - PRINT MAP 2070 ? TAB(22);"MAP OF THE GALAXY" 2080 ? TAB(21);"*******************" 2090 ? TAB(13);" A B C D E F G H I J K L" 2100 FOR R2=1 TO 9 2110 ? " ";R2;" "; 2120 FOR C2=1 TO 12 2130 ? " "; 2140 Z2=M(R2,C2) 2150 IF Z2=0 THEN Z2=Z2+1 2160 ? MID$(L$,Z2,1)" "; 2180 NEXT 2190 ? 2200 NEXT 2210 RETURN 2220 F1=A1-3: IF F1<0 THEN F1=0:! SUBROUTINE - CALCULATES THE 2230 F2=A2-3: IF F2<0 THEN F2=0:! SURVIVOR IN THE EVENT 2240 F3=A3-3: IF F3<0 THEN F3=0:! OF A MERGER 2250 F4=A4-3: IF F4<0 THEN F4=0 2260 IF F1>0 THEN T=Q(F1) ELSE T=0 2261 IF F1>0 THEN T1A=Q(F1) ELSE T1A=0 2262 IF F2>0 THEN T2=Q(F2) ELSE T2=0 2263 IF F3>0 THEN T3=Q(F3) ELSE T3=0 2264 IF F4>0 THEN T4=Q(F4) ELSE T4=0 2270 T1=F1 2280 ! IF Q(F2)>Q(F1) THEN T=Q(F2) ELSE GOTO 2300 2281 IF T2>T1A THEN T=T2 ELSE GOTO 2300 2290 T1=F2 2300 ! IF Q(F3)>T THEN T=Q(F3) ELSE GOTO 2320 2301 IF T3>T THEN T=T3 ELSE GOTO 2320 2310 T1=F3 2320 ! IF Q(F4)>T THEN T=Q(F4) ELSE GOTO 2340 2321 IF T4>T THEN T=T4 ELSE GOTO 2340 2330 T1=F4 2340 IF F1=T1 OR A1<4 THEN 2370 2350 X=F1 2360 GOSUB 2470 2370 IF F2=T1 OR A2<4 THEN 2400 2380 X=F2 2390 GOSUB 2470 2400 IF F3=T1 OR A3<4 THEN 2430 2410 X=F3 2420 GOSUB 2470 2430 IF F4=T1 OR A4<4 THEN 2460 2440 X=F4 2450 GOSUB 2470 2460 RETURN 2470 ? Z1$ 2480 GOSUB 3370 ! SUBROUTINE - PERFORMS CALCULATIONS 2490 RESTORE ! TO ACCOMPLISH A MERGER 2500 READ N,C$ 2510 IF X<>N THEN 2500 2520 C1$=C$ 2530 ? C1$; 2540 ? " HAS JUST BEEN MERGED INTO "; 2550 RESTORE 2560 READ N,C$ 2570 IF T1<>N THEN 2560 2580 C2$=C$ 2590 ? C2$;"!" 2610 ? "PLEASE NOTE THE FOLLOWING TRANSACTIONS." 2620 ? 2630 ? TAB(3);"OLD STOCK = ";C1$;" NEW STOCK = "; 2640 ? C2$ 2650 ? 2660 ? "PLAYER";TAB(10);"OLD STOCK";TAB(22);"NEW STOCK"; 2670 ? TAB(34);"TOTAL HOLDINGS";TAB(53);"BONUS PAID" 2680 FOR I=1 TO P1 2690 GOSUB 490 2700 ? TAB(10);S(X,I);TAB(22);INT((.5*S(X,I))+.5); 2710 ? TAB(34);S(T1,I)+INT((.5*S(X,I))+.5); 2720 X1=0 2730 FOR I1=1 TO P1 2740 X1=X1+S(X,I1) 2750 NEXT 2760 ? TAB(53);" $";INT(10*((S(X,I)/X1)*S1(X))) 2770 NEXT I 2780 FOR I=1 TO P1 2790 S(T1,I)=S(T1,I)+INT((.5*S(X,I))+.5) 2800 B(I)=B(I)+INT(10*((S(X,I)/X1)*S1(X))) 2810 NEXT I 2820 FOR I=1 TO 9 2830 FOR J=1 TO 12 2840 IF M(I,J)=X+3 THEN M(I,J)=T1+3 2850 NEXT J 2860 NEXT I 2870 IF R>1 THEN A1=M(R-1,C) ELSE A1=0 2880 A2=M(R+1,C) 2890 A3=M(R,C+1) 2900 IF C>1 THEN A4=M(R,C-1) ELSE A4=0 2910 F1=A3-3 2920 IF F1<0 THEN F1=0 2930 F2=A2-3 2940 IF F2<0 THEN F2=0 2950 Q(T1)=Q(T1)+Q(X) 2960 S1(T1)=S1(T1)+S1(X) 2970 IF S1(T1)=>3000 THEN GOSUB 3100 2980 F3=A3-3 2990 IF F3<0 THEN F3=0 3000 F4=A4-3 3010 IF F4<0 THEN F4=0 3020 S1(X)=100 3030 Q(X)=0 3040 FOR I=1 TO P1 3050 S(X,I)=0 3060 NEXT I 3070 ?:? 3080 M(R,C)=T1+3 3090 RETURN 3100 GOSUB 3370 ! SUBROUTINE - CALCULATES STOCK SPLITS 3110 ? "THE STOCK OF ", 3120 RESTORE 3130 READ N,C$ 3140 IF T1<>N THEN 3130 3150 ? C$, 3160 ? " HAS SPLIT 2 FOR 1 !" 3170 S1(T1)=INT(S1(T1)/2) 3180 ?:? 3190 FOR I1=1 TO P1 3200 S(T1,I1)=2*S(T1,I1) 3210 NEXT I1 3220 RETURN 3230 ? Z1$ 3240 ? 3250 ? "STOCK";TAB(30);"PRICE PER SHARE"; 3260 ? TAB(50);"YOUR HOLDINGS" 3270 FOR I3=1 TO 5 3280 IF S1(I3)=100 THEN 3340 3290 RESTORE 3300 READ N,C$ 3310 IF I3<>N THEN 3300 3320 ? C$, 3330 ? TAB(30);S1(I3);TAB(50);S(I3,P) 3340 NEXT I3 3350 RESTORE 3360 RETURN 3370 ? ! CHR$(7) 3380 ? TAB(22);"SPECIAL ANNOUNCEMENT !!!":? 3390 ? 3400 RETURN 3410 ? Z1$ 3420 ? " STAR LANES IS A GAME OF INTERSTELLAR TRADING." 3430 ? "THE OBJECT OF THE GAME IS TO AMASS THE GREATEST AMOUNT" 3440 ? "OF MONEY. THIS IS ACCOMPLISHED BY ESTABLISHING VAST," 3450 ? "INTERSTELLAR SHIPPING LANES, AND PURCHASING STOCK IN" 3460 ? "THE COMPANIES THAT CONTROL THOSE TRADE ROUTES. DURING" 3470 ? "THE COURSE OF THE GAME, STOCK APPRECIATES IN VALUE AS" 3480 ? "THE SHIPPING COMPANIES BECOME LARGER. ALSO, SMALLER" 3490 ? "COMPANIES CAN BE MERGED INTO LARGER ONES, AND STOCK" 3500 ? "IN THE SMALLER FIRM IS CONVERTED INTO STOCK IN THE" 3510 ? "LARGER ONE AS DESCRIBED BELOW.":PRINT 3520 ? "EACH TURN, THE COMPUTER WILL PRESENT THE PLAYER WITH" 3530 ? "FIVE PROSPECTIVE SPACES TO OCCUPY ON A 9X12 MATRIX" 3540 ? "(ROWS 1-9, COLUMNS A-L). THE PLAYER, AFTER EXAMINING" 3550 ? "THE MAP OF THE GALAXY TO DECIDE WHICH SPACE HE WISHES" 3560 ? "TO OCCUPY, RESPONDS WITH THE ROW AND COLUMN OF THAT" 3570 ? "SPACE, I.E., 7E, 8A, ETC. THERE ARE FOUR POSSIBLE" 3580 ? "MOVES A PLAYER CAN MAKE.":PRINT:PRINT 3590 ? 3600 GOSUB 3620 3610 GOTO 3660 3620 INPUT "PRESS RETURN TO CONTINUE";X2$ 3650 RETURN 3660 ? Z1$ 3670 ? " 1. HE CAN ESTABLISH AN UNATTACHED OUTPOST- IF HE" 3680 ? "SELECTS A SPACE THAT IS NOT ADJACENT TO A STAR, ANOTHER" 3690 ? "UNATTACHED OUTPOST, OR AN EXISTING SHIPPING LANE, THIS" 3700 ? "SPACE WILL BE DESIGNATED WITH A '+'. HE WILL THEN PROCEED" 3710 ? "WITH STOCK TRANSACTIONS, AS LISTED BELOW.":PRINT 3720 ? " 2. HE CAN ADD TO AN EXISTING LANE- IF HE SELECTS A" 3730 ? "SPACE THAT IS ADJACENT TO ONE - AND ONLY ONE EXISTING" 3740 ? "SHIPPING LANE, THE SPACE HE SELECTS WILL BE ADDED TO" 3750 ? "THAT SHIPPING LANE AND WILL BE DISIGNATED WITH THE FIRST" 3760 ? "LETTER OF THE COMPANY THAT OWNS THAT LANE. IF THERE ARE" 3770 ? "ANY STARS OR UNATTACHED OUTPOSTS ALSO ADJACENT TO THE" 3780 ? "SELECTED SPACE, THEY, TOO, WILL BE INCORPORATED INTO THE" 3790 ? "EXISTING LANE. EACH NEW SQUARE ADJACENT TO A STAR ADDS" 3800 ? "$500 PER SHARE, AND EACH NEW OUTPOST ADDS $100 PER SHARE" 3810 ? "TO THE MARKET VALUE OF THE STOCK OF THAT COMPANY." 3820 ?:? 3830 GOSUB 3620 3840 ? Z1$ 3850 ? " 3. HE MAY ESTABLISH A NEW SHIPPING LANE- IF THERE" 3860 ? "ARE FIVE OR LESS EXISTING SHIPPING LANES ESTABLISHED," 3870 ? "THE PLAYER MAY, GIVEN THE PROPER SPACE TO PLAY, ESTABLISH" 3880 ? "A NEW SHIPPING LANE. HE MAY DO THIS BY OCCUPYING A SPACE" 3890 ? "ADJACENT TO A STAR OR ANOTHER UNATTACHED OUTPOST, BUT" 3900 ? "NOT ADJACENT TO AN EXISTING SHIPPING LANE. IF HE" 3910 ? "ESTABLISHES A NEW SHIPPING LANE, HE IS AUTOMATICALLY" 3920 ? "ISSUED 5 SHARES IN THE NEW COMPANY AS A REWARD. HE" 3930 ? "MAY THEN PROCEED TO BUY STOCK IN ANY ACTIVE COMPANY," 3940 ? "INCLUDING THE ONE JUST FORMED, AS DESCRIBED BELOW." 3950 ? "THG MARKET VALUE OF THE NEW STOCK IS ESTABLISHED BY" 3960 ? "THE NUMBER OF STARS AND OCCUPIED SPACES AS DESCRIBED" 3970 ? "IN #2 ABOVE." 3980 ?:? 3990 GOSUB 3620 4000 ? Z1$ 4010 ? " 4. HE MAY MERGE TWO EXISTING COMPANIES- IF A PLAYER" 4020 ? "SELECTS A SPACE ADJACENT TO TWO EXISTING SHIPPING" 4030 ? "LANES, A MERGER OCCURS. THE LARGER COMPANY TAKES OVER THE" 4040 ? "SMALLER COMPANY - (IF BOTH COMPANIES ARE THE SAME SIZE" 4050 ? "PRIOR TO THE MERGER, THEN THE SURVIVOR IS DETERMINED BY" 4060 ? "ALPHABETICAL ORDER OF THE TWO COMPANY NAMES - THE EARLIER" 4070 ? "SURVIVES). THE STOCK OF THE SURVIVING COMPANY IS" 4080 ? "INCREASED IN VALUE ACCORDING TO THE NUMBER OF SPACES" 4090 ? "AND STARS ADDED TO ITS LANE. EACH PLAYERS STOCK IN" 4100 ? "THE DEFUNCT COMPANY IS EXCHANGED FOR SHARES IN THE" 4110 ? "SURVIVOR ON A RATIO OF 2 FOR 1. ALSO, EACH PLAYER" 4120 ? "IS PAID A CASH BONUS PROPORTIONAL TO THE PERCENTAGE" 4130 ? "OF OUTSTANDING STOCK HE HELD IN THE DEFUNCT COMPANY." 4140 ? "NOTE: AFTER A COMPANY BECOMES DEFUNCT THROUGH THE" 4150 ? "MERGER PROCESS, IT CAN REAPPEAR ELSEWHERE ON THE" 4160 ? "BOARD WHEN, AND IF, A NEW COMPANY IS ESTABLISHED." 4170 ?:? 4180 GOSUB 3620 4190 ? Z1$ 4200 ? " NEXT THE COMPUTER ADDS STOCK DIVIDENDS TO THE PLAYER'S" 4210 ? "CASH ON HAND (5% OF THE MARKET VALUE OF THE STOCK IN HIS" 4220 ? "POSSESSION), AND OFFERS HIM THE OPPORTUNITY TO PURCHASE" 4230 ? "STOCK IN ANY OF THE ACTIVE COMPANIES ON THE BOARD." 4240 ? "STOCK MAY NOT BE SOLD, BUT THE MARKET VALUE OF EACH" 4250 ? "PLAYER'S STOCK IS TAKEN INTO ACCOUNT AT THE END OF THE" 4260 ? "GAME TO DETERMINE THE WINNER. IF THE MARKET VALUE OF A GIVEN" 4270 ? "STOCK EXCEEDS $3000 AT ANY TIME DURING THE GAME, THAT" 4280 ? "STOCK SPLITS 2 FOR 1. THE PRICE IS CUT IN HALF, AND" 4290 ? "THE NUMBER OF SHARES OWNED BY EACH PLAYER IS DOUBLED." 4300 ? 4310 ? "NOTE: THE PLAYER MAY LOOK AT HIS PORTFOLIO AT ANY TIME" 4320 ? "DURING THE COURSE OF HIS TURN BY RESPONDING WITH 'STOCK'" 4330 ? "TO AN INPUT STATEMENT. LIKEWISE, HE CAN REVIEW THE MAP" 4340 ? "OF THE GALAXY BY TYPING 'MAP' TO AN INPUT STATEMENT." 4350 ?:? 4360 GOSUB 3620 4370 ? Z1$ 4380 ?:?:?:?:?:?:?:? 4390 ? TAB(16);"** GAME ENDS AFTER 48 MOVES **" 4400 ?:?:?:? 4410 ? "PLAYER WITH THE GREATEST NET WORTH AT THAT POINT IS THE WINNER." 4420 ?:? 4430 GOSUB 3620 4440 RETURN 4450 ? Z1$ 4460 GOSUB 3370 4470 FOR W=1 TO 500:NEXT W:? ! CHR$(7) 4480 FOR W=1 TO 500:NEXT W:? ! CHR$(7) 4490 ? TAB(10)," THE GAME IS OVER - HERE ARE THE FINAL STANDINGS" 4500 ?:? 4510 ? ! CHR$(7) 4520 ? "PLAYER";TAB(10);"CASH VALUE OF STOCK";TAB(33);"CASH ON HAND", 4530 ? TAB(50);"NET WORTH" 4540 ? 4550 FOR I=1 TO P1 4560 FOR J=1 TO 5 4570 D1(I)=D1(I)+(S1(J)*S(J,I)) 4580 NEXT J 4590 NEXT I 4600 FOR I=1 TO P1 4610 GOSUB 490 4620 ? TAB(10);D1(I) USING "$$#,###,###.##";TAB(33);B(I) USING "$$#,###,###.##"; 4630 ? TAB(50);D1(I)+B(I) USING "$$#,###,###.##" 4640 NEXT I 4650 ?