! 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 ?