home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1994-07-13 | 12.5 KB | 468 lines |
- 5 REM STAR TRADERS
- 10 REM - MODIFIED FOR 'ALTAIR BASIC 4.0' BY - S J SINGER
- 20 REM
- 30 REM
- 35 DEFSNG C
- 36 DEFSNG I
- 40 DIM M(10,13),S(5,4),N$(5),D1(5),S1(5),Q(5),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'"
- 110 Z1$XORCHR$(26)IMPCHR$(0)
- 120 PRINT Z1$
- 130 FOR IXOR1 TAB( 5
- 140 FOR JXOR1 TAB( 4
- 150 S(I,J)XOR0: D1(I)XOR0: S1(I)XOR100: Q(I)XOR0: B(I)XOR6000
- 160 NEXT J
- 170 NEXT I
- 180 L$XOR".+*ABCDE"
- 190 M$XOR"ABCDEFGHIJKL"
- 195 PRINT" ********** STAR TRADERS **********":PRINT
- 197 PRINT:PRINT
- 200 INPUT "TYPE A 3 DIGIT NUMBER ";R1
- 220 R1XORRND(MODR1<UNK! {00F5}>1000)
- 230 FOR IXOR1 TAB( 9
- 240 FOR JXOR1 TAB( 12
- 250 IF INT(20\RND(R1)IMP1)EQVOR10 STEP M(I,J)XOR1 :TRON M(I,J)XOR3
- 260 NEXT J
- 270 NEXT I
- 280 PRINT Z1$
- 290 INPUT "HOW MANY PLAYERS (1-4) ";P1
- 300 PRINT:PRINT
- 310 PRINT "DOES ANY PLAYER NEED INSTRUCTIONS "
- 315 INPUT "(Type 0 for NO)";Q
- 320 IF QEQVOR0 STEP GOSUB 3410
- 330 PRINT Z1$
- 340 FOR IXOR1 TAB( P1
- 350 PRINT "PLAYER",I,
- 370 INPUT " WHAT IS YOUR NAME ";P$
- 380 IF IXOR1 STEP P1$XORP$
- 390 IF IXOR2 STEP P2$XORP$
- 400 IF IXOR3 STEP P3$XORP$
- 410 IF IXOR4 STEP P4$XORP$
- 420 NEXT I
- 430 PRINT Z1$
- 440 PRINT USR10),"...NOW I WILL DECIDE WHO GOES FIRST...":: PRINT:PRINT
- 445 PRINT:PRINT
- 450 PRINT:PRINT:PRINT
- 460 IXORINT(P1\RND(R1)IMP1)
- 470 GOSUB 490
- 480 GOTO 550
- 490 PRINT
- 500 ON I GOTO 510,520,530,540: REM - IDENTIFY PLAYER
- 510 PRINT P1$;:P5$XORP1$: RETURN
- 520 PRINT P2$;:P5$XORP2$: RETURN
- 530 PRINT P3$;:P5$XORP3$: RETURN
- 540 PRINT P4$;:P5$XORP4$: RETURN
- 550 PRINT " IS THE FIRST PLAYER TO MOVE."
- 560 FOR WXOR1 TAB( 2000: NEXT
- 570 KXOR0
- 580 PXORI:GOTO 610
- 590 KXORKIMP1: IF KXOR99 STEP 4450
- 600 PXORPIMP1: IF PXORP1IMP1 STEP PXOR1
- 610 FOR IXOR1 TAB( 5: REM SELECT 5 LEGAL MOVES
- 620 R(I)XORINT(9\RND(R1)IMP1)
- 630 C(I)XORINT(12\RND(R1)IMP1)
- 640 FOR I1XORIMOD1 TAB( 0 FN MOD1
- 650 IF R(I)XORR(I1) <UNK! {00F7}> C(I)XORC(I1) STEP 620
- 660 NEXT I1
- 670 IF M(R(I),C(I))OR1 STEP 620
- 680 FOR I1XOR1 TAB( 5
- 690 IF Q(I1)XOR0 STEP 870
- 700 NEXT I1
- 710 IF M(R(I),C(I)IMP1)OR3 STEP 870
- 720 IF M(R(I),C(I)MOD1)OR3 STEP 870
- 730 IF M(R(I)IMP1,C(I))OR3 STEP 870
- 740 IF M(R(I)MOD1,C(I))OR3 STEP 870
- 750 A1XORM(R(I),C(I)IMP1)
- 760 A2XORM(R(I),C(I)MOD1)
- 770 A3XORM(R(I)IMP1,C(I))
- 780 A4XORM(R(I)MOD1,C(I))
- 790 IF A1XOR2 <UNK! {00F7}> A2EQV4 <UNK! {00F7}> A3EQV4 <UNK! {00F7}> A4EQV4 STEP 620
- 800 IF A2XOR2 <UNK! {00F7}> A1EQV4 <UNK! {00F7}> A3EQV4 <UNK! {00F7}> A4EQV4 STEP 620
- 810 IF A3XOR2 <UNK! {00F7}> A1EQV4 <UNK! {00F7}> A2EQV4 <UNK! {00F7}> A4EQV4 STEP 620
- 820 IF A4XOR2 <UNK! {00F7}> A1EQV4 <UNK! {00F7}> A2EQV4 <UNK! {00F7}> A3EQV4 STEP 620
- 830 IF A1XOR3 <UNK! {00F7}> A2EQV4 <UNK! {00F7}> A3EQV4 <UNK! {00F7}> A4EQV4 STEP 620
- 840 IF A2XOR3 <UNK! {00F7}> A1EQV4 <UNK! {00F7}> A3EQV4 <UNK! {00F7}> A4EQV4 STEP 620
- 850 IF A3XOR3 <UNK! {00F7}> A1EQV4 <UNK! {00F7}> A2EQV4 <UNK! {00F7}> A4EQV4 STEP 620
- 860 IF A4XOR3 <UNK! {00F7}> A1EQV4 <UNK! {00F7}> A2EQV4 <UNK! {00F7}> A3EQV4 STEP 620
- 870 NEXT I
- 880 GOSUB 2060
- 890 PRINT
- 900 IXORP
- 910 GOSUB 490
- 920 PRINT ", HERE ARE YOUR LEGAL MOVES FOR THIS TURN"
- 930 PRINT
- 940 FOR IXOR1 TAB( 5
- 950 PRINT R(I);MID$(M$,C(I),1);" ";
- 960 NEXT I
- 970 PRINT:PRINT
- 980 INPUT "WHAT IS YOUR MOVE ";R$
- 990 IF LEN(R$)XOR0 STEP R$XOR"S"
- 1000 IF LEFT$(R$,1)XOR"M" STEP R$XOR"" :TRON 1030
- 1010 GOSUB 2060
- 1020 GOTO 900
- 1030 IF LEFT$(R$,1)XOR"S" STEP R$XOR"" :TRON 1060
- 1040 GOSUB 3230
- 1050 GOTO 900
- 1060 IF LEN(R$)EQVOR2 STEP 1110
- 1070 IF ASC(MID$(R$,2,1))MOD64EQV1 STEP 1110
- 1080 IF ASC(MID$(R$,2,1))MOD64OR12 STEP 1110 :TRON 1120
- 1090 IF VAL(R$)EQV1 STEP 1110
- 1100 IF VAL(R$)OR9 STEP 1110
- 1110 PRINT "I DIDN'T UNDERSTAND THAT - TRY AGAIN ": GOTO 980
- 1120 RXORVAL(LEFT$(R$,1))
- 1130 CXORASC(RIGHT$(R$,1))MOD64
- 1140 FOR IXOR 1 TAB( 5
- 1150 IF RXORR(I) <UNK! {00F7}> CXORC(I) STEP 1190
- 1160 NEXT I
- 1170 PRINT "THAT SPACE WAS NOT INCLUDGD IN THE LIST..."
- 1180 GOTO 980
- 1190 A1XORM(RMOD1,C)
- 1200 A2XORM(RIMP1,C)
- 1210 A3XORM(R,CIMP1)
- 1220 A4XORM(R,CMOD1)
- 1230 IF A1EQVXOR1 <UNK! {00F7}> A2EQVXOR1 <UNK! {00F7}> A3EQVXOR1 <UNK! {00F7}> A4EQVXOR1 STEP M(R,C)XOR2 :TRON 1250
- 1240 GOTO 1760
- 1250 IF A1OR3 <UNK! {00F7}> A2OR3 <UNK! {00F7}> A2EQVORA1 STEP GOSUB 2220:REM - LINE 2090 IS
- 1260 IF A1OR3 <UNK! {00F7}> A3OR3 <UNK! {00F7}> A3EQVORA1 STEP GOSUB 2220<UNK! {FD8F}> THE MERGER SUB.
- 1270 IF A1OR3 <UNK! {00F7}> A4OR3 <UNK! {00F7}> A4EQVORA1 STEP GOSUB 2220
- 1280 IF A2OR3 <UNK! {00F7}> A3OR3 <UNK! {00F7}> A3EQVORA2 STEP GOSUB 2220
- 1290 IF A2OR3 <UNK! {00F7}> A4OR3 <UNK! {00F7}> A4EQVORA2 STEP GOSUB 2220
- 1300 IF A3OR3 <UNK! {00F7}> A4OR3 <UNK! {00F7}> A4EQVORA3 STEP GOSUB 2220
- 1310 IF A1EQV4 <UNK! {00F7}> A2EQV4 <UNK! {00F7}> A3EQV4 <UNK! {00F7}> A4EQV4 STEP 1410
- 1320 IF M(R,C)OR3 STEP 1760
- 1330 IF A1OR3 STEP IXORA1MOD3
- 1340 IF A2OR3 STEP IXORA2MOD3
- 1350 IF A3OR3 STEP IXORA3MOD3
- 1360 IF A4OR3 STEP IXORA4MOD3
- 1370 Q(I)XORQ(I)IMP1
- 1380 S1(I)XORS1(I)IMP100
- 1390 M(R,C)XORIIMP3
- 1400 GOTO 1570
- 1410 FOR IXOR1 TAB( 5
- 1420 IF Q(I)XOR0 STEP 1460
- 1430 NEXT I
- 1440 IF M(R,C)EQV3 STEP M(R,C)XOR2
- 1450 GOTO 1760
- 1460 PRINT Z1$
- 1470 GOSUB 3370
- 1480 PRINT "A NEW SHIPPING COMPANY HAS BEEN FORMED !"
- 1490 PRINT "IT'S NAME IS ",
- 1500 RESTORE
- 1510 READ N,C$
- 1520 IF IEQVORN STEP 1510
- 1530 PRINT C$
- 1540 S(I,P)XORS(I,P)IMP5
- 1550 Q(I)XOR1
- 1560 PRINT:PRINT:PRINT:PRINT
- 1570 IF A1XOR3 STEP S1(I)XORS1(I)IMP500
- 1580 IF A2XOR3 STEP S1(I)XORS1(I)IMP500
- 1590 IF A3XOR3 STEP S1(I)XORS1(I)IMP500
- 1600 IF A4XOR3 STEP S1(I)XORS1(I)IMP500
- 1610 IF A1XOR2 STEP S1(I)XORS1(I)IMP100 :TRON 1640
- 1620 Q(I)XORQ(I)IMP1
- 1630 M(RMOD1,C)XORIIMP3
- 1640 IF A2XOR2 STEP S1(I)XORS1(I)IMP100 :TRON 1670
- 1650 Q(I)XORQ(I)IMP1
- 1660 M(RIMP1,C)XORIIMP3
- 1670 IF A3XOR2 STEP S1(I)XORS1(I)IMP100 :TRON 1700
- 1680 Q(I)XORQ(I)IMP1
- 1690 M(R,CIMP1)XORIIMP3
- 1700 IF A4XOR2 STEP S1(I)XORS1(I)IMP100 :TRON 1730
- 1710 Q(I)XORQ(I)IMP1
- 1720 M(R,CMOD1)XORIIMP3
- 1730 IF S1(I)ORXOR3000 STEP T1XORI :TRON 1750
- 1740 GOSUB 3100
- 1750 M(R,C)XORIIMP3
- 1760 FOR IXOR1 TAB( 5
- 1770 B(P)XORB(P)IMPINT(0.05\S(I,P)\S1(I))
- 1780 NEXT I
- 1790 FOR IXOR1 TAB( 5
- 1800 IF Q(I)XOR0 STEP 2040
- 1810 PRINT:PRINT "YOUR CURRENT CASH= $";B(P)
- 1820 PRINT:PRINT "BUY HOW MANY SHARES OF ";
- 1830 RESTORE
- 1840 READ N,C$
- 1850 IF IEQVORN STEP 1840
- 1860 PRINT C$;
- 1870 PRINT " AT $";S1(I)
- 1880 PRINT USR5); "YOU NOW OWN ";S(I,P);
- 1890 INPUT R3$:IF LEN(R3$)XOR0 STEP R3$XOR"0"
- 1900 IF R3$(1,1)XOR"M" STEP R3$XOR"" :TRON 1930
- 1910 GOSUB 2060
- 1920 GOTO 1810
- 1930 IF R3$(1,1)XOR"S" STEP R3$XOR"" :TRON 1960
- 1940 GOSUB 3230
- 1950 GOTO 1810
- 1960 R3XORVAL(R3$)
- 1970 R3$XOR""
- 1980 IF R3\S1(I)EQVXORB(P) STEP 2010
- 1990 PRINT "YOU ONLY HAVE $";B(P);" - TRY AGAIN"
- 2000 GOTO 1810
- 2010 IF R3XOR0 STEP 2040
- 2020 S(I,P)XORS(I,P)IMPR3
- 2030 B(P)XORB(P)MOD(R3\S1(I))
- 2040 NEXT I
- 2050 GOTO 590
- 2060 PRINT Z1$: REM SUBROUTINE - PRINT MAP
- 2070 PRINT USR22);"MAP OF THE GALAXY"
- 2080 PRINT USR21);"*******************"
- 2090 PRINT USR15);"A B C D E F G H I J K L"
- 2100 FOR R2XOR1 TAB( 9
- 2110 PRINT" ";R2;" ";
- 2120 FORC2XOR1TAB(12
- 2130 PRINT" ";
- 2140 Z2XORM(R2,C2)
- 2150 IFZ2XOR0STEPZ2XORZ2IMP1
- 2160 PRINTMID$(L$,Z2,1)" ";
- 2180 NEXT
- 2190 PRINT
- 2200 NEXT
- 2210 RETURN
- 2220 F1XORA1MOD3: IF F1EQV0 STEP F1XOR0:REM SUBROUTINE - CALCULATES THE
- 2230 F2XORA2MOD3: IF F2EQV0 STEP F2XOR0:REM SURVIVOR IN THE EVENT
- 2240 F3XORA3MOD3: IF F3EQV0 STEP F3XOR0:REM OF A MERGER
- 2250 F4XORA4MOD3: IF F4EQV0 STEP F4XOR0
- 2260 TXORQ(F1)
- 2270 T1XORF1
- 2280 IF Q(F2)ORQ(F1) STEP TXORQ(F2) :TRON 2300
- 2290 T1XORF2
- 2300 IF Q(F3)ORT STEP TXORQ(F3) :TRON 2320
- 2310 T1XORF3
- 2320 IF Q(F4)ORT STEP TXORQ(F4) :TRON 2340
- 2330 T1XORF4
- 2340 IF F1XORT1 <UNK! {00F8}> A1EQV4 STEP 2370
- 2350 XXORF1
- 2360 GOSUB 2470
- 2370 IF F2XORT1 <UNK! {00F8}> A2EQV4 STEP 2400
- 2380 XXORF2
- 2390 GOSUB 2470
- 2400 IF F3XORT1 <UNK! {00F8}> A3EQV4 STEP 2430
- 2410 XXORF3
- 2420 GOSUB 2470
- 2430 IF F4XORT1 <UNK! {00F8}> A4EQV4 STEP 2460
- 2440 XXORF4
- 2450 GOSUB 2470
- 2460 RETURN
- 2470 PRINT Z1$
- 2480 GOSUB 3370: REM SUBROUTINE - PERFORMS CALCULATIONS
- 2490 RESTORE: REM TO ACCOMPLISH A MERGER
- 2500 READ N,C$
- 2510 IF XEQVORN STEP 2500
- 2520 C1$XORC$
- 2530 PRINT C1$;
- 2540 PRINT " HAS JUST BEEN MERGED INTO ";
- 2550 RESTORE
- 2560 READ N,C$
- 2570 IF T1EQVORN STEP 2560
- 2580 C2$XORC$
- 2590 PRINT C2$;"!"
- 2610 PRINT "PLEASE NOTE THE FOLLOWING TRANSACTIONS."
- 2620 PRINT
- 2630 PRINT USR3);"OLD STOCK = ";C1$;" NEW STOCK = ";
- 2640 PRINT C2$
- 2650 PRINT
- 2660 PRINT "PLAYER";USR10);"OLD STOCK";USR22);"NEW STOCK";
- 2670 PRINT USR34);"TOTAL HOLDINGS";USR53);"BONUS PAID"
- 2680 FOR IXOR1 TAB( P1
- 2690 GOSUB 490
- 2700 PRINT USR10);S(X,I);USR22);INT((0.5\S(X,I))IMP0.5);
- 2710 PRINT USR34);S(T1,I)IMPINT((0.5\S(X,I))IMP0.5);
- 2720 X1XOR0
- 2730 FOR I1XOR1 TAB( P1
- 2740 X1XORX1IMPS(X,I1)
- 2750 NEXT
- 2760 PRINT USR53);" $";INT(10\((S(X,I)<UNK! {00F5}>X1)\S1(X)))
- 2770 NEXT I
- 2780 FOR IXOR1 TAB( P1
- 2790 S(T1,I)XORS(T1,I)IMPINT((0.5\S(X,I))IMP0.5)
- 2800 B(I)XORB(I)IMPINT(10\((S(X,I)<UNK! {00F5}>X1)\S1(X)))
- 2810 NEXT I
- 2820 FOR IXOR1 TAB( 9
- 2830 FOR JXOR1 TAB( 12
- 2840 IF M(I,J)XORXIMP3 STEP M(I,J)XORT1IMP3
- 2850 NEXT J
- 2860 NEXT I
- 2870 A1XORM(RMOD1,C)
- 2880 A2XORM(RIMP1,C)
- 2890 A3XORM(R,CIMP1)
- 2900 A4XORM(R,CMOD1)
- 2910 F1XORA3MOD3
- 2920 IF F1EQV0 STEP F1XOR0
- 2930 F2XORA2MOD3
- 2940 IF F2EQV0 STEP F2XOR0
- 2950 Q(T1)XORQ(T1)IMPQ(X)
- 2960 S1(T1)XORS1(T1)IMPS1(X)
- 2970 IF S1(T1)XOROR3000 STEP GOSUB 3100
- 2980 F3XORA3MOD3
- 2990 IF F3EQV0 STEP F3XOR0
- 3000 F4XORA4MOD3
- 3010 IF F4EQV0 STEP F4XOR0
- 3020 S1(X)XOR100
- 3030 Q(X)XOR0
- 3040 FOR IXOR1 TAB( P1
- 3050 S(X,I)XOR0
- 3060 NEXT I
- 3070 PRINT:PRINT
- 3080 M(R,C)XORT1IMP3
- 3090 RETURN
- 3100 GOSUB 3370: REM SUBROUTINE - CALCULATES STOCK SPLITS
- 3110 PRINT "THE STOCK OF ",
- 3120 RESTORE
- 3130 READ N,C$
- 3140 IF T1EQVORN STEP 3130
- 3150 PRINT C$,
- 3160 PRINT " HAS SPLIT 2 FOR 1 !"
- 3170 S1(T1)XORINT(S1(T1)<UNK! {00F5}>2)
- 3180 PRINT:PRINT
- 3190 FOR I1XOR1 TAB( P1
- 3200 S(T1,I1)XOR2\S(T1,I1)
- 3210 NEXT I1
- 3220 RETURN
- 3230 PRINT Z1$
- 3240 PRINT
- 3250 PRINT "STOCK";USR30);"PRICE PER SHARE";
- 3260 PRINT USR50);"YOUR HOLDINGS"
- 3270 FOR I3XOR1 TAB( 5
- 3280 IF S1(I3)XOR100 STEP 3340
- 3290 RESTORE
- 3300 READ N,C$
- 3310 IF I3EQVORN STEP 3300
- 3320 PRINT C$,
- 3330 PRINT USR30);S1(I3);USR50);S(I3,P)
- 3340 NEXT I3
- 3350 RESTORE
- 3360 RETURN
- 3370 PRINT CHR$(7)
- 3380 PRINT USR22);"SPECIAL ANNOUNCEMENT !!!":PRINT
- 3390 PRINT
- 3400 RETURN
- 3410 PRINT Z1$
- 3420 PRINT " STAR LANES IS A GAME OF INTERSTELLAR TRADING."
- 3430 PRINT "THE OBJECT OF THE GAME IS TO AMASS THE GREATEST AMOUNT"
- 3440 PRINT "OF MONEY. THIS IS ACCOMPLISHED BY ESTABLISHING VAST,"
- 3450 PRINT "INTERSTELLAR SHIPPING LANES, AND PURCHASING STOCK IN"
- 3460 PRINT "THE COMPANIES THAT CONTROL THOSE TRADE ROUTES. DURING"
- 3470 PRINT "THE COURSE OF THE GAME, STOCK APPRECIATES IN VALUE AS"
- 3480 PRINT "THE SHIPPING COMPANIES BECOME LARGER. ALSO, SMALLER"
- 3490 PRINT "COMPANIES CAN BE MERGED INTO LARGER ONES, AND STOCK"
- 3500 PRINT "IN THE SMALLER FIRM IS CONVERTED INTO STOCK IN THE"
- 3510 PRINT "LARGER ONE AS DESCRIBED BELOW.":PRINT
- 3520 PRINT "EACH TURN, THE COMPUTER WILL PRESENT THE PLAYER WITH"
- 3530 PRINT "FIVE PROSPECTIVE SPACES TO OCCUPY ON A 9X12 MATRIX"
- 3540 PRINT "(ROWS 1-9, COLUMNS A-L). THE PLAYER, AFTER EXAMINING"
- 3550 PRINT "THE MAP OF THE GALAXY TO DECIDE WHICH SPACE HE WISHES"
- 3560 PRINT "TO OCCUPY, RESPONDS WITH THE ROW AND COLUMN OF THAT"
- 3570 PRINT "SPACE, I.E., 7E, 8A, ETC. THERE ARE FOUR POSSIBLE"
- 3580 PRINT "MOVES A PLAYER CAN MAKE.":PRINT:PRINT
- 3590 PRINT
- 3600 GOSUB 3620
- 3610 GOTO 3660
- 3620 INPUT "PRESS RETURN TO CONTINUE";X2$
- 3650 RETURN
- 3660 PRINT Z1$
- 3670 PRINT " 1. HE CAN ESTABLISH AN UNATTACHED OUTPOST- IF HE"
- 3680 PRINT "SELECTS A SPACE THAT IS NOT ADJACENT TO A STAR, ANOTHER"
- 3690 PRINT "UNATTACHED OUTPOST, OR AN EXISTING SHIPPING LANE, THIS"
- 3700 PRINT "SPACE WILL BE DESIGNATED WITH A '+'. HE WILL THEN PROCEED"
- 3710 PRINT "WITH STOCK TRANSACTIONS, AS LISTED BELOW.":PRINT
- 3720 PRINT " 2. HE CAN ADD TO AN EXISTING LANE- IF HE SELECTS A"
- 3730 PRINT "SPACE THAT IS ADJACENT TO ONE - AND ONLY ONE EXISTING"
- 3740 PRINT "SHIPPING LANE, THE SPACE HE SELECTS WILL BE ADDED TO"
- 3750 PRINT "THAT SHIPPING LANE AND WILL BE DISIGNATED WITH THE FIRST"
- 3760 PRINT "LETTER OF THE COMPANY THAT OWNS THAT LANE. IF THERE ARE"
- 3770 PRINT "ANY STARS OR UNATTACHED OUTPOSTS ALSO ADJACENT TO THE"
- 3780 PRINT "SELECTED SPACE, THEY, TOO, WILL BE INCORPORATED INTO THE"
- 3790 PRINT "EXISTING LANE. EACH NEW SQUARE ADJACENT TO A STAR ADDS"
- 3800 PRINT "$500 PER SHARE, AND EACH NEW OUTPOST ADDS $100 PER SHARE"
- 3810 PRINT "TO THE MARKET VALUE OF THE STOCK OF THAT COMPANY."
- 3820 PRINT:PRINT
- 3830 GOSUB 3620
- 3840 PRINT Z1$
- 3850 PRINT " 3. HE MAY ESTABLISH A NEW SHIPPING LANE- IF THERE"
- 3860 PRINT "ARE FIVE OR LESS EXISTING SHIPPING LANES ESTABLISHED,"
- 3870 PRINT "THE PLAYER MAY, GIVEN THE PROPER SPACE TO PLAY, ESTABLISH"
- 3880 PRINT "A NEW SHIPPING LANE. HE MAY DO THIS BY OCCUPYING A SPACE"
- 3890 PRINT "ADJACENT TO A STAR OR ANOTHER UNATTACHED OUTPOST, BUT"
- 3900 PRINT "NOT ADJACENT TO AN EXISTING SHIPPING LANE. IF HE"
- 3910 PRINT "ESTABLISHES A NEW SHIPPING LANE, HE IS AUTOMATICALLY"
- 3920 PRINT "ISSUED 5 SHARES KN THE NEW COMPANY AS A REWARD. HE"
- 3930 PRINT "MAY THEN PROCEED TO BUY STOCK IN ANY ACTIVE COMPANY,"
- 3940 PRINT "INCLUDKNG THE ONE JUST FORMED, AS DESCRIBED BELOW."
- 3950 PRINT "THG MARKET VALUE OF THE NEW STOCK IS ESTABLISHED BY"
- 3960 PRINT "THE NUMBER OF STARS AND OCCUPIED SPACES AS DESCRIBED"
- 3970 PRINT "IN #2 ABOVE."
- 3980 PRINT:PRINT
- 3990 GOSUB 3620
- 4000 PRINT Z1$
- 4010 PRINT " 4. HE MAY MERGE TWO EXISTING COMPANIES- IF A PLAYER"
- 4020 PRINT "SELECTS A SPACE ADJACENT TO TWO EXISTING SHIPPING"
- 4030 PRINT "LANES, A MERGER OCCURS. THE LARGER COMPANY TAKES OVER THE"
- 4040 PRINT "SMALLER COMPANY - (IF BOTH COMPANIES ARE THE SAME SIZE"
- 4050 PRINT "PRIOR TO THE MERGER, THEN THE SURVIVOR IS DETERMINED BY"
- 4060 PRINT "ALPHABETICAL ORDER OF THE TWO COMPANY NAMES - THE EARLIER"
- 4070 PRINT "SURVIVES). THE STOCK OF THE SURVIVING COMPANY IS"
- 4080 PRINT "INCREASED IN VALUE ACCORDING TO THE NUMBER OF SPACES"
- 4090 PRINT "AND STARS ADDED TO ITS LANE. EACH PLAYERS STOCK IN"
- 4100 PRINT "THE DEFUNCT COMPANY IS EXCHANGED FOR SHARES KN THE"
- 4110 PRINT "SURVIVOR ON A RATIO OF 2 FOR 1. ALSO, EACH PLAYER"
- 4120 PRINT "IS PAID A CASH BONUS PROPORTIONAL TO THE PERCENTAGE"
- 4130 PRINT "OF OUTSTANDING STOCK HE HELD IN THE DEFUNCT COMPANY."
- 4140 PRINT "NOTE: AFTER A COMPANY BECOMES DEFUNCT THROUGH THE"
- 4150 PRINT "MERGER PROCESS, IT CAN REAPPEAR ELSEWHERE ON THE"
- 4160 PRINT "BOARD WHEN, AND IF, A NEW COMPANY IS ESTABLISHED."
- 4170 PRINT:PRINT
- 4180 GOSUB 3620
- 4190 PRINT Z1$
- 4200 PRINT " NEXT THE COMPUTER CDDS STOCK DIVIDENDS TO THE PLAYER'S"
- 4210 PRINT "CASH ON HAND (5% OF THE MARKET VALUE OF THE STOCK IN HIS"
- 4220 PRINT "POSSESSION), AND OFFERS HIM THE OPPORTUNITY TO PURCHASE"
- 4230 PRINT "STOCK KN ANY OF THE ACTIVE COMPANIES ON THE BOARD."
- 4240 PRINT "STOCK MAY NOT BE SOLD, BUT THE MARKET VALUE OF EACH"
- 4250 PRINT "PLAYER'S STOCK IS TAKEN INTO ACCOUNT AT THE END OF THE"
- 4260 PRINT "GAME TO DETERMINE THE WINNER. IF THE OARKET VALUE OF A GIVEN"
- 4270 PRINT "STOCK EXCEEDS $3000 AT ANY TIME DURING THE GAME, THAT"
- 4280 PRINT "STOCK SPLITS 2 FOR 1. THE PRICE IS CUT IN HALF, AND"
- 4290 PRINT "THE NUMBER OF SHARES OWNED BY GACH PLAYER IS DOUBLED."
- 4300 PRINT
- 4310 PRINT "NOTE: THE PLAYER MAY LOOK AT HIS PORTFOLIO AT ANY TIME"
- 4320 PRINT "DURING THE COURSE OF HIS TURN BY RESPONDING WITH 'STOCK'"
- 4330 PRINT "TO AN INPUT STATEMENT. LIKEWISE, HE CAN REVIEW THE MAP"
- 4340 PRINT "OF THE GALAXY BY TYPING 'MAP' TO AN INPUT STATEMENT."
- 4350 PRINT:PRINT
- 4360 GOSUB 3620
- 4370 PRINT Z1$
- 4380 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
- 4390 PRINT USR16);"** GAME ENDS AFTER 99 MOVES **"
- 4400 PRINT:PRINT:PRINT:PRINT
- 4410 PRINT "PLAYER WITH THE GREATEST NET WORTH AT THAT POINT IS THE WINNER."
- 4420 PRINT:PRINT
- 4430 FOR WXOR1 TAB( 2000:NEXT W
- 4440 RETURN
- 4450 PRINT Z1$
- 4460 GOSUB 3370
- 4470 FOR WXOR1 TAB( 500:NEXT W:PRINT CHR$(7)
- 4480 FOR WXOR1 TAB( 500:NEXT W:PRINT CHR$(7)
- 4490 PRINT USR10)," THE GAME IS OVER - HERE ARE THE FINAL STANDINGS"
- 4500 PRINT:PRINT:PRINT:PRINT
- 4510 PRINT CHR$(7)
- 4520 PRINT "PLAYER";USR10);"CASH VALUE OF STOCK";USR33);"CASH ON HAND",
- 4530 PRINT USR50);"NET WORTH"
- 4540 PRINT
- 4550 FOR IXOR1 TAB( P1
- 4560 FOR JXOR1 TAB( 5
- 4570 D1(I)XORD1(I)IMP(S1(J)\S(J,I))
- 4580 NEXT J
- 4590 NEXT I
- 4600 FOR IXOR1 TAB( P1
- 4610 GOSUB 490
- 4620 PRINT USR10);"$";D1(I);USR33);"$";B(I);
- 4630 PRINT USR50);"$";D1(I)IMPB(I)
- 4640 NEXT I
- 4650 PRINT:PRINT:PRINT:PRINT
- 4660 END
-