Trailing-Edge
-
PDP-10 Archives
-
decuslib10-01
-
43,50210/monop.bas
There are no other files named monop.bas in the archive.
100 RANDOMIZE
105 DIM K(20)
150 DIM L(40)
200 DIM B(40)
300 DIM P$(40),S(40),R(40),V(40),J(40),M(40)
400 DIM C(40)
500 DIM O(40)
600 PRINT "HOW MANY PLAYERS";
700 PRINT "(TYPE '0' FOR INSTRUCTIONS)";
800 INPUT N
900 IF N>0 THEN 1200
1000 GOSUB 72800
1100 GOTO 600
1200 IF N<11 THEN 1500
1300 PRINT" NO MORE THAN 10 CAN PLAY"
1400 GOTO 600
1500 FOR Q5 = 1 TO N
1600 PRINT "NAME";
1700 REM THIS PART STARTED FROM 151-2
1800 REM A(B)=0 FOR HUMAN, 1 FOR COMPUTER
1900 GOTO 2500
2000 LET N$(Q5)="COMPUTER"
2100 A(Q5)=1
2200 W7=W7+1
2300 REM W7 IS # OF COMPUTER PLAYERS
2400 GOTO 3300
2500 INPUT N$(Q5)
2600 IF N$(Q5)="COMPUTER" THEN 2000
2700 IF N$(Q5)="YOU" THEN 2000
2900 IF N$(Q5)<>"WHAT" THEN 2910
2901 GOTO 3000
2910 Z7=1
2920 FOR O1=1 TO Q5-1
2930 IF N$(O1)<>N$(Q5) THEN 2960
2940 PRINT "NAME IN USE, INPUT ANOTHER"
2950 GOTO 1600
2960NEXT O1
2965 GOTO 3300
3000 PRINT "TYPE PLAYERS NAME (ONE ONLY AT A TIME)"
3100 PRINT "'YOU' IF THE COMPUTER IS PLAYING."
3200 GOTO 1600
3300 T(Q5)=1500
3500 NEXT Q5
3600 IF Z7=1 THEN 3900
3700 A7=1
3800 A8=1
3900 FOR B4= 1 TO 40
4000 REM READS DATA, P$=NAME,S IS TYPE,R IS RENT, AND C IS COST
4100 READ P$(B4),S(B4)
4200 REM B3= B= PLAYER NUMBER
4300 IF S(B4)>8 THEN 4500
4400 GOTO 4600
4500 READ L(B4),C(B4)
4510 R(B4)=L(B4)
4600 NEXT B4
4700 I0=1
4800 J0=200
4900 LET I=I+1
5000 PRINT
5100PRINT "TURN";I
5200 PRINT
5300 GOSUB 59100
5400 IF I0=0 THEN 5700
5500 GOTO 26100
5600 I0=0
5700 FOR B3=1 TO N
5800 B=B3
5900IF A(B)=1 THEN 6300
6000 O$="YOU"
6100 I$="YOUR"
6200 GOTO 6600
6300 O$="I"
6400 I$="MY"
6500 REM THIS SETS O AND I$ FOR COMPUTER OR HUMAN
6600 R5=0
6700 U=0
6800 IF Q(B)=1 THEN 32100
6900 IF A(B)=1 THEN 7200
6910 IF N$(B)<>"ME" THEN 7000
6920 PRINT "YOUR TURN"
6930 GO TO 7500
7000 PRINT N$(B3);"'S TURN"
7100 GOTO 7500
7200 PRINT "MY TURN";
7300 IF W7=1 THEN 7450
7400 PRINT "(PLAYER";B;")";
7450 PRINT
7500 IF T(B)>0 THEN 7700
7600 GO SUB 75250
7700 IF Q(B)=1 THEN 32100
7900 IF E(B)=0 THEN 8200
8000 B9=B3
8100 GOSUB 42500
8200 IF T(B)> 100 THEN 8500
8300 GOSUB 49800
8500 IF N(B)>0 THEN 8600
8510 IF X(B)=0 THEN 8800
8600 GOSUB 54000
8700 GOTO 8800
8800 B2= INT(RND(-1)*6)+1
8900 B1= INT (RND(-1)*6)+1
9000 PRINT "THE DICE ARE ON";B1;" AND ";B2
9100 IF B1=B2 THEN 9500
9200 IF J(B)=1 THEN 10900
9300 G(B)=0
9400 GOTO 14200
9500 G(B)= G(B)+1
9600 REM G(B) IS NUMBER OF DOUBLES
9700 IF G(B)>=3 THEN 10400
9800 IF J(B)=1 THEN10100
9900 REM J(B)= 1IF IN JAIL, =0 IF OUT OF JAIL
10000 GOTO 14200
10100 J(B)=0
10200 PRINT "OUT OF JAIL "
10300 GOTO 25900
10400 J(B)=1
10500 PRINT "3 DOUBLES . IN JAIL"
10600 P(B)=10
10700 GOTO 26000
10800 G(B)=0
10900 IF F(B)>0 THEN 11100
11000 GOTO 12300
11100 PRINT" IN JAIL WILL ";O$;" USE ";I$;" JAILCARD";
11200 IF A(B)=0 THEN 11500
11300 PRINT "?* YES *"
11400 GOTO 12000
11500 INPUT X$
11600 IFX$="NO" THEN 12300
11700 IF X$="YES" THEN 12000
11800 PRINT "YES OR NO";
11900 GOTO 11500
12000 F(B)=F(B)-1
12100 D(B)=0
12200 GOTO 13900
12300 IF D(B)<3 THEN 12350
12310 PRINT "THIRD TIME IN JAIL.";O$;" MUST PAY $50."
12320 GOTO 13800
12350 PRINT"IN JAIL. WILL ";O$;" PAY $50";
12400IF A(B)=0 THEN 13150
12500 D(B)=D(B)+1
12600 IF D(B)=3 THEN 13000
12700 IF T(B)>200 THEN 13000
12800 PRINT"? *NO*"
12900 GOTO 26000
13000 PRINT"? *YES*"
13100 GOTO 13800
13150 P(B)=P(B)+1
13200 INPUT A$
13300 P(B)=10
13400 IF A$="YES" THEN 13800
13500 IF A$="NO" THEN 26000
13600 PRINT "TYPE 'YES' OR 'NO'";
13700 GOTO 12300
13800 LET T(B)= T(B)-50
13900J(B)=0
14000 D(B)=0
14200 P(B)= P(B)+B1+B2
14300 R5=0
14400 U=0
14500 P=P(B)
14600 IF P(B)>40 THEN 14800
14700 GOTO 15200
14800 LET P(B)= P(B)- 40
14900 P=P(B)
15000 T(B)= T(B)+200
15100 PRINT "PASSED GO!! COLLECTED $200 "
15200 IF S(P(B))>10 THEN 15500
15300 GOTO 21900
15400 P=P(B3)
15500 IF V(P(B))>B THEN 19500
15600 REM V(--) IS THE OWNER OF THE PROPERTY
15700IF V(P(B))<B THEN 15900
15800 GOTO 16100
15900 IF V(P(B))>0 THEN 19500
16000 GOTO 16700
16100 Y9=P(B)
16200 IF A(B)=0 THEN 16500
16300 PRINT "I AM ON ";P$(P);" WHICH I OWN."
16400 GOTO 25900
16500 PRINT "YOU ARE ON ";P$(Y9); " WHICH YOU OWN "
16600 GOTO 25900
16700 LET P=P(B3)
16800 IF A(B)=0 THEN 17100
16900 PRINT P$(P);" IS AVAILABLE AT PRICE $";C(P);" WILL I BUY IT";
17000 GOTO 17300
17100 PRINT "WILL YOU BUY ";P$(P);" FOR $";C(P);
17200 IF A(B)=0 THEN 17800
17300 IF T(B)<200 +C(P) THEN 17600
17400 PRINT "? *YES*"
17500GOTO 18300
17600 PRINT "? *NO*"
17700 GOTO 25900
17800 INPUT A$
17900 IF A$= "YES " THEN 18300
18000 IF A$="NO" THEN 25900
18100 PRINT"YES OR NO";
18200 GOTO 17800
18300 LET T(B)= T(B)- C(P(B))
18400 IF R5=1 THEN 18600
18500 GOTO 18700
18600 W(B)=W(B)+1
18700 IF U=1 THEN 18900
18800 GOTO 19000
18900 LET U(B)= U(B)+1
19000 V(P(B))= B
19100 U8=0
19200 GOSUB 37400
19300 GOTO 25900
19400 REM THIS IS RENT ROUTINE
19500 IF R5=0 THEN 19800
19600 R(P(B))= 25* W(V(P(B)))
19700 GOTO 70900
19800 IF U=0 THEN 70900
19900 IF U(B)=2 THEN 20200
20000 U3=4
20100 GOTO 20300
20200 U3=10
20300 GOTO 70800
20400 IF A(W8)=0 THEN 20800
20500 PRINT P$(W9); " IS MINE";
20600 IF W7=1 THEN 20900
20700 PRINT "(PLAYER";W8;")";
20750 GOTO 20900
20800PRINT P$(W9);" BELONGS TO "; N$(W8);
20900 IF M(P(B))=1 THEN 21400
21000 PRINT ", RENT IS $ "; R(P(B))
21100 T(B)=T(B)-R(P(B))
21200 T(V(P))= T(V(P))+ R(P(B))
21300GOTO 25900
21400 PRINT " ,BUT IT IS MORTGAGED"
21500 GOTO 25900
21600 P=P(B3)
21700 T(V(P(B)))= T(V(P(B)))+ R(P(B))
21800 GOTO 25900
21900 ON S(P(B)) GO TO 25900,22400, 22900,23500,24300,24600,25000,22100,25400,25700
22000 REM FOR UNIQUE SQUARES IT SENDS THE PROGRAM TO THE RIGHT DIRECTION
22100 Y9=P(B)
22110 IF A(B)=0 THEN 22200
22120 PRINT "I AM ON ";P$(Y9);"."
22130 GO TO 25900
22200 PRINT "YOU ARE ON ";P$(Y9)
22300 GOTO 25900
22400 PRINT"COMMUNITY CHEST ";
22500 PRINT "--";
22600 GOSUB 32300
22700 REM GOES TO CHANCE-COMMUNITY CHEST GOSUB
22800 GOTO 23100
22900 PRINT "CHANCE--";
23000 GOSUB 32300
23100 IF V0=1 THEN 23300
23200 GOTO 25900
23300 V0=0
23350 R5=1
23400 GOTO 15500
23500 Z2=.1*(T(B))
23510 IF Z2>0 THEN 23600
23520 PRINT O$;" IS ON INCOME TAX, BUT HAS A NEGATIVE AMOUNT OF MONEY"
23530 GOTO 25900
23600 IF Z2>200 THEN 24000
23700 LET T(B)= T(B)-INT(Z2)
23800 PRINT "INCOME TAX--$";INT(Z2)
23900 GOTO 25900
24000 T(B)= T(B)- 200
24100 PRINT "INCOME TAX-$200"
24200 GOTO 25900
24300 T(B)= T(B)-75
24400 PRINT "LUXURY TAX $75"
24500 GOTO 25900
24600 J(B)=1
24700 P(B)=10
24800PRINT"GO TO JAIL"
24900 GOTO 25900
25000 PRINT"FREE PARKING-$";J0;"."
25100 T(B)=T(B)+J0
25200 J0=200
25300 GOTO 25900
25400 R5=1
25500 GOTO 15500
25600 GOTO 25900
25700 U=1
25800 GOTO 15400
25900 IF G(B)>0 THEN 8800
26000 PRINT
26100 IF A8=-1 THEN 28500
26200 IF A8=0 THEN 26800
26300 IF A8=5 THEN 26600
26400 A8=A8+1
26500 GOTO 31900
26600 A8=1
26700 GOTO28500
26800 PRINT "SUMMARY";
26900
27000 INPUT A$
27100 IF A$="AUTO" THEN 27300
27200 GOTO 27500
27300 A8=1
27400 GOTO 31900
27500 IF A$="ALWAYS" THEN 27700
27600 GOTO27900
27700 A8=-1
27800 GOTO 28500
27900 IF A$="NO" THEN 31900
28000 IF A$="YES" THEN 28500
28100 PRINT "'YES' OR 'NO' OR 'AUTO'( GIVES A SUMMARY EVERY FIVE TURNS"
28200 PRINT "AND DOESN'T ASK YOU ANY MORE"
28400 GOTO 26800
28500 GOTO 28600
28600 FOR J8=1 TO N
28601 X=0
28650 T0=0
28700 IF Q(J8)=1 THEN31500
28800 T$=" "
28850 IF A(J8)=1 THEN 29200
28860 IF N$(J8)<>"ME" THEN 28900
28870 PRINT "YOU HAVE $";T(J8);
28880 GO TO 29300
28900 PRINT N$(J8);" HAS $";T(J8);
29000 GOTO 29300
29200 PRINT"I";
29210 IF W7=1 THEN 29230
29220 PRINT "(PLAYER";J8;")";
29230 PRINT" HAVE $";T(J8);
29300 FORJ9=1 TO 40
29400 IF V(J9)=J8 THEN 29600
29500 GOTO 30605
29600 IF T$= " " THEN 29800
29700 PRINT ","; T$;
29800 T$= P$(J9)
29805 X=X+C(J9)+B(J9)*INT((S(J9)-10)/2+.5)*50 -M(J9)* .5*C(J9)
29900 IF B(T)=0 THEN 30400
30000 IF B(T)>1 THEN 30300
30100 PRINT "(WITH A HOUSE)";
30200 GOTO 30400
30300 IF B(T)<5 THEN 30330
30310 PRINT "(WITH A HOTEL)";
30320 GOTO 30400
30330 PRINT "(WITH";B(T);"HOUSES)";
30400 IF M(T)=0 THEN 30600
30500 PRINT "(MORTGAGED)";
30600 T=J9
30602 IF T0=1 THEN 30650
30605 NEXT J9
30606 IF F(J8)>0 THEN 30620
30607 IF T$<>" " THEN 30610
30608 PRINT "."
30609 GOTO 31400
30610 PRINT ", AND ";T$;
30611 GOTO 30630
30620 IF T$=" " THEN30700
30625 PRINT",";T$;
30630 T0=1
30640 GOTO 29900
30650 T0=0
30700 IF F(J8)=0 THEN 31200
30800 IF F(J8)=1 THEN 31100
30900 PRINT ",AND ";F(J8);"JAILCARDS.";
30910 X=X+F(J8)*50
31000 GOTO 31400
31100 PRINT ",AND A JAILCARD.";
31110 X=X+50
31150 GOTO 31400
31200 IF T$=" " THEN31400
31201 CHANGE T$ TO K
31202 IF K(K(0))=46 THEN 31390
31300 PRINT ".";
31310 GOTO 31400
31390 GOTO 31400
31400 PRINT
31410 IF X=0 THEN 31420
31415 PRINT " TOTAL ASSETS:$";T(J8)+X;"."
31420 PRINT
31500 NEXT J8
31649 PRINT" ";
31650 PRINT "$";J0;" ON THE FREE PARKING JACKPOT."
31700 PRINT
31800 PRINT
31900 IF I0=0 THEN 32100
32000 GOTO 5600
32100 PRINT
32150 NEXT B3
32200 GOTO 4900
32300 J5=INT(RND(-1)*7)+1
32400ON J5 GO TO 32500,32900,33500,34100,34700,35200,35500
32500 PRINT "GOTO JAIL!!!"
32600J(B)=1
32700 P(B)=10
32800 GOTO 35700
32900 PRINT "COLLECT $50 FROM EVERYONE"
33000 FOR Y3=1TON
33100 LET T(Y3)= T(Y3)-50
33200 NEXT Y3
33300 T(B)=T(B)+N*50
33400 GOTO 35700
33500 PRINT "GO TO READING"
33600 LET P(B)=5
33700 LET P=5
33800 V0=1
33900 REM V0 TELLS THE PROGRAM TO GO TO READING
34000 RETURN
34100 PRINT "PAY ALL $50"
34200 FOR Y4=1 TO N
34300 T(Y4)= T(Y4)+50
34400 NEXT Y4
34500 T(B)=T(B)-N*50
34600 GOTO 35700
34700 Y2=INT(RND(-1)*4)+1
34800 PRINT "PAY $";Y2*50
34900 T(B)=T(B)-Y2*50
35000J0=J0+Y2*50
35100 GOTO 35700
35200 PRINT "GO DIRECTLY TO GO"
35300 P(B)=40
35400 GOTO 35700
35500 PRINT "TICKET OUT OF JAIL"
35600 F(B)=F(B)+1
35700 RETURN
35800 DATA MEDITERRANEAN,11,2,60,CC,2,BALTIC,11,4,60,IT,4
35900 DATA READING,9,25,200,ORIENTAL,12,6,100,CH,3
36000 DATA VERMONT,12,6,100,CONN.,12,8,120,JAIL,8
36100 DATAST. CHAS.,13,10,140,ELECTRIC WORKS,10,1,150,STATES
36200 DATA13,10,140,VIRGINIA,13,12,160,PENNS.RR.,9,25,200
36300 DATA ST.JAMES,14,14,180,CC,2,TENNESSEE,14,14,180
36400 DATA NEW YORK,14,16,200,FP,7,KENTUCKY,15,18,200
36500 DATA CH,3,INDIANA,15,18,220,ILLINOIS,15,20,240
36600 DATA B&O RR,9,25,200
36700 DATA ATLANTIC,16,22,260,VETNOR
36800DATA 16,22,260,WATER WORKS,10,1,150,M. GARDENS
36900 DATA 16,24,280,GOJAIL,6,PACIFIC,17,26,300,N.CAROLINA
37000 DATA 17,26,300,CC,2,PENNS. AVE.,17,28,320
37100 DATA SHORTLINE,9,25,200,CHANCE,3,PARKPLACE,18
37200 DATA 35,350,LT,5,BOARDWALK,18,50,400,GO,8
37300 DATA GO,8
37400 Z=0
37500 Z(3)=0
37600 Z(2)=0
37700 Z(1)=0
37800 IF U8=O THEN 38200
37900 B9=E9
38000 P=E8
38100 GOTO 38400
38200 B9=B3
38300 P=P(B9)
38400 IF S(P)<11 THEN 39700
38500 IF P>4 THEN 38800
38600 LET I7=0
38700 GOTO 38900
38800 I7= P-4
38900 IF P>35 THEN 39200
39000 Q1= P+4
39100GOTO 39300
39200 Q1=40
39300 FOR W1= I7 TO Q1
39400 IF S(W1) = S(P) THEN 39600
39500 GOTO 40000
39600 IF V(W1)= B9 THEN 39800
39700 RETURN
39800 Z=Z+1
39900 Z(Z)=W1
40000 NEXT W1
40100 E(B9)= E(B9)+1
40200 IF A(B9)=0 THEN 40500
40300 PRINT "I HAVE A MONOPOLY AND THERENTS ARE DOUBLED"
40400 GOTO 40600
40500 PRINT "YOU NOW HAVE MONOPOLY. THE RENTS ARE DOUBLED"
40600 FOR Z2=1 TO 3
40700 R(Z(Z2))= 2*R(Z(Z2))
40800 O(Z(Z2))=1
40900 NEXT Z2
41000 IF S(Z(1))<11 THEN 41200
41100 GOTO 41300
41200 RETURN
41300 GOSUB 42500
41400 U8=0
41500 RETURN
41600 FOR I1=1 TO 40
41700 IF S(I1)= S(B) THEN 41900
41800 GOTO 42300
41900 IF V(I1)= V9 THEN 42100
42000 RETURN
42100 Z=Z+1
42200 Z(Z)=I1
42300 NEXT I1
42400 GOTO 40500
42500 PRINT" DO ";O$;" WANT HOUSES NOW";
42600 IF A(B9)=0 THEN 43000
42700 IF T(B9)>500 THEN 43600
42800 PRINT "? *NO*"
42900 RETURN
43000 INPUT Z$
43100 IF Z$="NO" THEN 43500
43200 IF Z$="YES" THEN 43800
43300 PRINT "YES OR NO";
43400 GOTO 43000
43500 RETURN
43600 I3=1
43700 GOTO 44000
43800 PRINT "LOT, #OF HOUSES";
43900 IF A(B)=0 THEN45320
44000 FOR I2= 1 TO 40
44100 IF V(I2)<>B9 THEN 44700
44200 IF O(I2)=0 THEN 44700
44300 IF B(I2)>4 THEN 44700
44400 GOTO 45250
44500 H=I2
44600 GOTO46600
44700 NEXT I2
44800 GOTO 45100
44900 IF I3> 5 THEN 45100
45000 GOTO 44000
45100 PRINT "?*NO*"
45200 RETURN
45250 IF T(B)>1700 THEN 45290
45260 IF B(I2)>5-INT(T(B)/350) THEN 45290
45270 H4=INT (T(B)/350)
45280 GOTO 45300
45290 H4= 5-B(I2)
45300 PRINT "?* YES ";H4;" ON ";P$(I2);"*"
45310 GOTO 46700
45320 INPUT H$,H5
45400 IF H$= "NO" THEN 43500
45500 IF H$="WHAT" THEN 78500
45700 IF H5>0 THEN 46100
45800 PRINT "A POSITIVE NUMBER PLEASE!"
45900 INPUT H5
46000 GOTO 45700
46100 FOR H=1 TO 40
46200 IF P$(H)= H$ THEN 46600
46300 NEXT H
46400PRINT "WHAT LOT";
46450 INPUT H$
46500 GOTO 45400
46600 IF A(B)=0 THEN 47100
46700 H5=H4
46750 H=I2
46800 GOTO 47100
46900 PRINT "YOU DON'T OWN THAT"
47000 GOTO 42500
47100 H7=H5+B(H)
47110 GOSUB 47140
47120 GOTO 49100
47140 R(H)=L(H)
47142 IF H7<6 THEN 47146
47143 PRINT " YOU WILL HAVE TO HAVE 5 HOUSES (ONE HOTEL)"
47144 H5=H7-B(H)
47145 H7=5
47146 IF H7>0 THEN 47149
47147 PRINT "YOU CAN'T HAVE LESS THAN 0 HOUSES."
47148 GOTO 49000
47149 B(H)=0
47150 FOR H6= 1 TO H7
47160 B(H)=H6
47800 J=H
47900 IF B(H)=0 THEN 43500
48000 ON B(H) GOTO 48100,48300,48500,48700,48700
48100 R(J)= R(J)*2.5
48200 GOTO 48800
48300 R(J)=R(J)*3
48400 GOTO 48800
48500 R(J)= R(J)*2.3
48600 GOTO 48800
48700R(J)=R(J)+185
48800 R(J)= 10* INT(R(J)/10 +.5)
48900 NEXT H6
49000 PRINT "THE RENT IS NOW $";R(J);"."
49050 RETURN
49100 C=INT((S(J)-10)/2+.5)*50
49150 IF H5=1 THEN 49220
49200 PRINT "THOSE WERE $";C;"EACH, MAKING $";H5*C;"."
49210 GOTO 49300
49220 PRINT "THAT WAS $";C;"."
49300 T(B9)= T(B9)- H5*C
49310 X(B9)=X(B9)+H5
49350 RETURN
49400 PRINT "ANOTHER";
49500 GOTO 42600
49600 RETURN
49700GOTO 39200
49800 PRINT "WHAT DO ";O$;" WANT TO MORTGAGE";
49900 I3=1
50000 IF A(B)=0 THEN 51600
50050 IF T(B)>150 THEN 51200
50100 FOR I4= 1 TO 40
50200 IF V(I4)=B THEN 50400
50300 GOTO 51000
50400 IF O(I4)= I3 THEN 51000
50500 IF M(I4)=1 THEN 51000
50600 IF B(I4)<>0 THEN 51000
50700 PRINT "? *";P$(I4);"*"
50800 Z5=I4
50900 GOTO 52500
51000 NEXT I4
51100 IF I3=1 THEN 51400
51200 PRINT "? *NOTHING*"
51210 RETURN
51300 GOTO 53000
51400 I3=0
51500 GOTO 50100
51600 INPUT Z$
51700 IF Z$="WHAT" THEN 78800
51800 IF Z$<>"NOTHING" THEN 51900
51850 RETURN
51900 FOR Z5=1 TO 40
52000 IF P$(Z5)=Z$ THEN 52500
52100
52200 NEXT Z5
52300 PRINT "WHAT";
52400 GOTO 51600
52500 IF B(Z5)>0 THEN 53100
52510 FOR X=1 TO 40
52520 IF S(X)<>S(Z5) THEN 52560
52530 IF B(X)=0 THEN 52560
52540 PRINT "THERE ARE HOUSES ON OTHER LOTS OF MONPOLY. YOU MUST SELL THEM."
52550 GOTO 49800
52560 NEXT X
52600 GOTO 53400
52700 M(Z5)=1
52800 N(B)= N(B)+1
52900 T(B)= T(B)+.5*C(Z5)
53000 GOTO 49800
53100 PRINT "THERE ARE HOUSES ON IT"
53200 GO TO 49800
53300 RETURN
53400 IF V(Z5)>B3THEN 53700
53500 IF V(Z5)<B3 THEN 53700
53510 IF M(Z5)=0 THEN 53600
53520 PRINT"IT ALREADY IS"
53600 GOTO 52700
53700 PRINT" YOU DON'T OWN THAT"
53800 GOTO 49900
53900 RETURN
54000 PRINT "UNMORTGAGE WHAT";
54100 IF A(B)=0 THEN 55200
54150 IF T(B)<150 THEN 55000
54200 FOR E0= 1 TO 40
54300 IF V(E0)= B THEN 54500
54400 GOTO 54900
54500 IF M(E0)=0 THEN 54900
54600 PRINT "?*"; P$(E0);"*"
54700 E=E0
54800 GOTO 56100
54900 NEXT E0
55000 PRINT "? *NOTHING*"
55100 GOTO 56500
55200 INPUT Z$
55300 IF Z$<>"WHAT" THEN 55400
55350 PRINT "TYPE 'NOTHING', A PROPERTY NAME, OR 'HOUSES' IF"
55351 PRINT "YOU WANT TO SELL THEM."
55360 GOTO 55200
55400 IF Z$="NOTHING" THEN 56500
55500 IF Z$="HOUSES" THEN 56600
55600 FOR E=1 TO 40
55700 IF P$(E)=Z$ THEN 56100
55800 NEXT E
55900 PRINT "WHAT";
56000GOTO 55200
56100 IF M(E)=1 THEN 56130
56110 PRINT "IT ISN'T MORTGAGED"
56120 GOTO 54000
56130 IF V(E)=B THEN 56160
56140PRINT"YOU DON'T OWN IT"
56150 GOTO 54000
56160 M(E)=0
56200 N(B)= N(B)-1
56300 T(B)=T(B)-INT(.6*C(E))
56400 PRINT "WITH INTEREST THAT WAS$";INT(.6*C(E))
56450 IF N(B)>0 THEN 54000
56500 RETURN
56600 PRINT"LOT,# OF HOUSES";
56700 INPUT Z$,E2
56800 IF E2>0 THEN 57100
56900 PRINT "INPUT A POSITIVE NUMBER"
57000 GOTO 56600
57100 IF Z$="NO" THEN53000
57200 GOTO 57500
57300 PRINT "TYPE IN THE NAME OF THE LOT THEN THE # OF HOUSES YOU ARE"
57400PRINT"SELLING. TO SELL NONE TYPE 'NO'"
57410 GO TO 56600
57500 FOR E3=1 TO 40
57600 IF P$(E3)=Z$THEN 58000
57700 NEXT E3
57800 PRINT "WHAT LOT";
57850 INPUT Z$
57900 GOTO 57100
58000 B(E3)= B(E3)-E2
58010 X(B)=X(B)-E2
58100 IF B(E3)<0 THEN 58700
58200 H=E3
58210 H7=B(H)
58250 GOSUB 47140
58300 E4=INT((S(E3)-10)/2+.5)*25
58350 E4=E4*E2
58400 PRINT" YOU GET$";E4
58500 T(B)=T(B)+E4
58600 GOTO 54000
58700 PRINT "YOU DON'T HAVE THAT MANY"
58800 B(E3)=B(E3)+E2
58900 GOTO 56600
59000 GOTO 54000
59100 IF A7=1 THEN 60200
59200 IF E6=0 THEN 59700
59300 E6=E6+1
59400 IF E6<3 THEN 60600
59500 E6=1
59700 PRINT "CHANGES";
59701 E6=0
59800 INPUT Z$
59805 IF Z$<>"WHAT" THEN 59900
59810 PRINT "'YES', 'NO','NEVER',OR 'DELAY'( WILL ASK AGAIN IN THREEE TURNS";
59820 GOTO 59800
59900 IF Z$= "NEVER" THEN 60100
60000 GOTO 60300
60100 A7=1
60200 RETURN
60300 IF Z$="YES" THEN 61300
60400 IF Z$<>"DELAY" THEN 60700
60500 E6=1
60600 PRINT
60650 RETURN
60700 IF Z$="NO" THEN 60600
60800 PRINT "TYPE 'YES', OR 'NO' IF YOU WANT TO MAKE CHAGES OR NOT"
60900 PRINT "OR 'DELAY' TO HAVE IT ASK YOU LATER"
61000 GOTO 59700
61100 RETURN
61200IF T(B9)> 300 THEN 43600
61300 GOTO 61700
61400 REM THIS PART WILL TRANSFERR OWNERSHIP OF A PROPERTY
61500 REM TO SOMEONE ELSE AND TRANSFER SOME MONEY TO
61600 REM TO CORRRESPOND
61700 PRINT "('WHAT,A,0' FOR INST.)";
61800 INPUT Z$,A$,A
61850 IF Z$="NEW PLAYER" THEN 86000
61900 IF A$<>"YOU" THEN 62100
62000 A$="COMPUTER"
62100 IF Z$="NEW PLAYER" THEN 86000
62105 IF Z$="WHAT" THEN 79000
62200 IF Z$= "NO" THEN 68800
62250 IF Z$="QUIT" THEN 64300
62300 IF Z$="JAIL CARD" THEN 64300
62310 IF Z$="JAILCARD" THEN 64300
62400 IF A$<>"BANK" THEN 62800
62500 GOTO 64300
62600 PRINT" THAT'S ILLEGAL!"
62700 GOTO 61700
62800 FOR E8=1 TO 40
62900 IF P$(E8)= Z$ THEN 63700
63000 NEXT E8
63100 PRINT "WHAT LOT";
63200 INPUT Z$
63300 IF Z$<>"WHAT"THEN 63600
63400 PRINT"TYPE THE PROPERTY NAME OR 'NO'"
63500 GOTO63200
63600 IF Z$="NO" THEN 59700
63650 GOTO 62800
63700 IF S(E8)<9THEN 68900
63800 T8=0
63900 IF V(E8)=0 THEN 69100
64000 IF B(E8)>0 THEN 64100
64010 FOR I2= 1 TO 40
64020 IF S(I2)<>S(E8) THEN 64060
64030 IF B(I2)=0 THEN 64060
64040 PRINT "THERE ARE HOUSES ON OTHER LOTS OF MONOPOLY.YOU MUST SELL THEM."
64050 GOTO 59700
64060 NEXT I2
64070 GOTO 64300
64100 PRINT "THERE ARE HOUSES ON IT"
64200 GOTO 61700
64300 T8=0
64350 FOR E9= 1 TO N
64400 IF N$(E9)=A$ THEN 64600
64500 GOTO 64700
64600 T8=T8+1
64700 NEXT E9
64800 ON T8+1 GOTO 65700,66600,64900,64900,64900,64900,64900,64900,64900,64900
64900 PRINT "WHICH PLAYER NO.('-1' FOR INSTRUCTIONS)";
65000 INPUT E9
65100 IF E9>0 THEN 65500
65200 PRINT "TYPE THE PLAYER NO. OF THE PIECE. BECAUSE I"
65300 PRINT "PLAY MORE THAN ONE PLAYER, I MUST KNOW WHICH";
65400 GOTO 65000
65500 IF E9>N THEN 64900
65510 IF A(E9)=1 THEN 65600
65520 PRINT"I AM NOT ";N$(E9)
65530 GOTO 64900
65600 GOTO 66600
65700 PRINT "WHO";
65800 INPUT A$
65900 IFA$="NO" THEN69300
66000 IF A$<>"WHAT" THEN 66200
66100 PRINT "TYPE NEW OWNER'S NAME OR 'NO'";
66200 GOTO 64300
66300 REM THIS IS FOR JAILCARDS
66400 GO SUB 80700
66500 GOTO 59700
66600 GOTO 66611
66611 FOR E9=1 TO N
66612 IF N$(E9)<>A$ THEN 66614
66613 GOTO 66615
66614 NEXT E9
66615 B=E9
66620 IF Z$="JAILCARD" THEN 66300
66625 IF Z$<>"QUIT" THEN 66700
66628 B=E9
66630 GOSUB 77400
66640 GOTO 59700
66700 U5=V(E8)
66800 IF A$="BANK" THEN 67300
66900 IF A(V(E8))=1 THEN 71900
67000 IF A ( E9)= 1 THEN 71300
67100 T(V(E8))= T(V(E8))+A
67105 IF S(E8)<>9 THEN 67120
67110 W(V(E8))=W(V(E8))-1
67115 W(E9)=W(E9)+1
67120 IF S(E8)<>10 THEN 67200
67130 U(V(E8))=U(V(E8))-1
67140 U(E9)=U(E9)+1
67200 LET V(E8)= E9
67300 T(E9)= T(E9)-A
67400 IF A$="BANK" THEN 59700
67500 IF O(E8)=1 THEN 67700
67600 GOTO 68500
67700 FOR O9= 1 TO 40
67800 IF S(O9)=S(E8) THEN 68000
67900 GOTO 68200
68000 LET R(O9)= R(O9)/2
68100 O(O9)=0
68200 NEXT O9
68300 PRINT "NO LONGER A MONOPOLY THERE"
68400 LET E(U5)= E(U5)-1
68500 U8=1
68600 P=E8
68700 GOSUB 37400
68800 GOTO 59700
68900 PRINT" YOU FOOL YOU CANT OWN ";Z$;"!!!!"
69000 GOTO 61700
69100 PRINT "IT ISN'T OWNED"
69200 GOTO 61700
69300 GOTO 59700
70700 REM THIS BELONGS TO LINES 1049--
70800 R(P(B))=INT(RND(-1)*6+1)*U3
70900 W9=P(B)
71000 W8=V(P(B))
71100 GOTO 20400
71200 W8=V(P(B))
71300 IF T(E9)> 200+ C(E8) THEN71600
71400 PRINT "I DONT ACCEPT"
71500 GOTO 61300
71600 IF A> 150+C(E8) THEN 71400
71700 PRINT "I ACCEPT"
71800 GOTO 67100
71900 IF O(E8)=1 THEN 72100
71910 FOR O1= 1 TO 40
71920 IF S(O1)<>S(E8) THEN 71950
71930 IF V(O1)<>E9 THEN 72000
71950 NEXT O1
71960 IF T(V(E8))>200 THEN 72100
71970 IF A<C(E8)+200 THEN 72100
71980 GOTO 72600
72000 IF T(V(E8))<200 THEN 72300
72010 IF A>2*C(E8) THEN 72600
72020 GOTO 72100
72100 PRINT "I WON'T SELL"
72200 GOTO 61300
72300 IF A> 1.5* C(E8) THEN 72600
72500 GOTO 72100
72600 PRINT "IT IS A DEAL"
72700 GOTO 67100
72800 PRINT " THIS PROGRAM WILL HANDLE UP TO TEN PLAYERS"
72850 PRINT "OR PIECES. IT WILL DO ALL ROUTINE JOBS SUCH AS"
72900 PRINT"ROLLING THE DICE,MOVING PIECES, AND INFORMING THE"
72950 PRINT "PLAYERS OF ALL OPTIONS. IT WILL ACTUALLY"
73000 PRINT"PLAY THE GAME MAKING THE DECISIONS OF ANY NUMBER OF PLAYERS."
73300 PRINT"WANT THE COMPUTER TO DO THIS TYPE 'YOU' WHEN IT ASKS"
73400 PRINT"FOR THE NAME."
73500 PRINT "OF PLAYERS. TO DO THIS TYPE 'YOU' AS THE"
73550 PRINT " NAME OF THAT PLAYER."
73600 PRINT
73650 PRINT " THIS PROGRAM IS FAIRLY SELF-EXPLANATORY, HOWEVER THE FOLLOWING"
73700 PRINT "THINGS MUST BE KEPT IN MIND:"
73750 PRINT
73800 PRINT" 1. IF A QUESTION IS NOT UNDERSTOOD,TYPING 'WHAT' WILL"
73850 PRINT "USUALLY GIVE INSTRUCTIONS. HOWEVER SOME QUESTIONS WILL"
73860 PRINT "ASK FOR MORE THAN ONE THING AND THIS NUMBER OF THINGS MUST"
73900 PRINT "BE TYPED SEPERATED BY COMMAS. ALSO CARE MUST BE "
73950 PRINT "TAKEN THAT ALL INPUTS ARE EITHER NUMERIC OR ALPHABETIC"
74000PRINT "AS ASKED FOR. EXAMPLE:"
74050 PRINT " LOT, # OF HOUSES? WHAT,0"
75000 PRINT "WILL GIVE INSTRUCTIONS."
75050 PRINT " 2. THE COMPUTER WILL OFTEN ASK IF YOU WANT CHANGES"
75051PRINT "OR A SUMMARY. THE CHANGES ROUTINE WILL BE DESCRIBED"
75052 PRINT "BELOW, BUT IF YOU DON'T WANT TO BE BOTHERED WIL THE"
75053 PRINT "EVERYTIME, TYPE 'NEVER' TO HAVE IT STOP ASKING"
75054 PRINT "COMPLETELY, OR 'DELAY' TO HAVE IT ASK IN THREE"
75055 PRINT "TURNS. FOR SUMMARY TYPE 'AUTO' AND IT WILL "
75056 PRINT "GIVE A SUMMARY EVERY 5 TURNS, WITHOUT ASKING YOU AGAIN"
75057 PRINT" 3. TO SELL PROPERTIES OR ADD AND DROP PLAYERS USE THE "
75058 PRINT "CHANGES ROUTINE. TYPE 'YES' WHEN IT ASKS 'CHANGES?'"
75059 PRINT "TYPE 'YES' THEN TYPE 'WHAT,A,0' FOR COMPLETE INSTRUCTIONS"
75060 PRINT " 4. FIVE HOUSES ARE EQUIVALENT TO ONE HOTEL."
75061 PRINT " 5. IF YOU TYPE 'YOU' FOR ALL THE NAMES"
75062 PRINT "THE COMPUTER WILL PLAY ITSELF WITHOUT"
75063 PRINT "ASKING YOU FOR ANYTHING. TYPING CONTROL-O"
75064 PRINT "WILL MAKE THE GAME CONTINUE WITHOUT "
75065 PRINT "TYPE OUT, AND CONTROL-C THEN CONT WILL START THE"
75066 PRINT " TYPE OUT AGAIN WITH THE GAME VERY FAR ALONG."
75067 PRINT " 6. TO SELL HOUSES, WAIT UNTIL THE COMPUTER ASKS"
75068 PRINT "UNMORTGAGE WHAT? AND TYPE 'HOUSES' THEN ANSWER"
75069 PRINT "ANSWER FURTHAR QUESTIONS."
75100 RETURN
75200 PRINT
75250 IF N7=1 THEN 77000
75300 IF A(B)=0 THEN 76000
75400 FOR I2= 1 TO N
75405 IF Q(I2)=1 THEN 75600
75500 IF A(I2)=0 THEN 75800
75600 NEXT I2
75700 GOTO 77000
75800 PRINT "I AM $";ABS(T(B));"IN THE RED. SHOULD I QUIT";
75900 GOTO 76100
76000 PRINT "YOU ARE $";ABS(T(B));"IN THE HOLE. WILL YOU QUIT";
76100 INPUT Z$
76200 IF Z$= "YES" THEN 77400
76300 IF Z$="NO" THEN 76900
76400 IF Z$="LATER" THEN 77000
76500 PRINT "TYPE 'YES' TO QUIT OR 'NO' TO KEEP GOING"
76600 PRINT "AND PAYING 5% INTEREST ON THE NEGATIVE AMMOUNT"
76700 PRINT "OR 'LATER' TO NOT QUIT NOW BUT KEEP THE COMPUTER ASKING"
76800 GOTO 76100
76900 N7=1
77000 I1=INT(ABS(.05*T(B)+ .5))
77100 PRINT "5% INTEREST IS $";I1
77200 T(B)= T(B) - I1
77300 RETURN
77400 Q(B)=1
77450 T(B)=0
77500 FOR I2=1 TO 40
77600 IF V(I2)<>B THEN 78100
77700 V(I2)=0
77800 M(I2)=0
77900 B(I2)=0
77910 R(I2)=L(I2)
78000 O(I2)=0
78100 NEXT I2
78200 N$(B)=" "
78300 RETURN
78400 GOTO 55200
78500 PRINT "TYPE PROPERTY NAME THEN NUMBER OF HOUSES OR"
78600 PRINT "'NO,0' TO DO NOTHING"
78700 GOTO 45300
78800 PRINT "TYPE A PROPERTY NAME OR 'NOTHING' ";
78900 GOTO 51600
79000 PRINT " THIS ROUTINE CAN DO SEVERAL THINGS:"
79010 PRINT " 1. TO SELL PROPERTY FROM ONE PERSON TO ANOTHER"
79020 PRINT "TYPE THE PROPERTY NAME,THE NEW OWNER'S NAME, THEN"
79030 PRINT "THE AMOUNT IT IS BEING SOLD FOR."
79040 PRINT " 2. TO SELL A JAILCARD, TYPE 'JAILCARD',THE NEW OWNERS"
79050 PRINT "NAME, THEN THE AMOUNT IT IS BEING SOLD FOR."
79060 PRINT "IF NEEDED THE COMPUTER WILL ASK WHO IT CAME FROM."
79070 PRINT " 3. FOR EITHER OF THE ABOVE,'YOU' CAN BE USED AS THE"
79080 PRINT "NEW OWNER'S NAME,OR THE COMPUTERS PROPERTY CAN BE USES"
79090 PRINT "THE COMPUTER WILL THEN DECIDE IF IT WILL ACCEPT YOUR OFFER,"
79100 PRINT "AND TELL YOU IF IT WILL BUY OR SELL."
79110 PRINT " 4. TO ADD A NEW PLAYER TYPE:'NEW PLAYER',HIS NAME,'0'"
79120 PRINT " 5. TO DROP A PLAYER TYPE:'QUIT',HIS NAME,'0'"
79130 PRINT
80200 GOTO 61700
80300 B=E9
80400 REMARK THIS IS FOR QUITING FORM CHANGE ROUTINE
80500 GOSUB 77400
80600 GOTO 59700
80700 REM THIS IS FOR CHANGING JAILCARDS
80800 IF N<>2 THEN 81100
80900 T0=3-E9
81000GOTO 83200
81100 PRINT "WHO FROM";
81200 INPUT Z$
81300IF Z$<>"WHAT" THEN 81700
81400 PRINT"TYPE THE PERSON'S NAME FROM WHOM THE CARD"
81500 PRINT" CAME.";N$(E9);" HAD IT. WHO HAS IT NOW";
81600 GOTO 81200
81700 IF Z$<>"YOU" THEN 82700
81800 IF W8=1 THEN 82600
81850 PRINT "WHICH #";
81851 PRINT "('0' FOR INST.)";
81900 INPUT O3
82000 IF O3>0 THEN 82300
82100 PRINT "I AM PLAYING SEVERAL PLAYERS. TYPE NO. OF ONE YOU WANT";
82200 GOTO 81900
82300 IF O3>N THEN 82100
82400 T0=O3
82500 GOTO 83200
82600 Z$="COMPUTER"
82700 FOR T0= 1 TO 40
82800 IF N$(T0)= Z$ THEN 83200
82900 NEXT T0
83000 PRINT "WHO ";
83100GOTO 81200
83200 IF A(T0)=0 THEN 83910
83300 IF A>45 THEN 83600
83400 IF A<30 THEN 83800
83500 GOTO 83800
83600 PRINT" OK"
83700 GOTO 84600
83800 PRINT" NO"
83900 RETURN
83910 IF A(E9)=0 THEN 84000
83920 IF A>50 THEN 83800
83930 IF F(E9)=1 THEN 83800
83940 IF T(E9)<200 THEN 83800
83950 GOTO83600
84000 IF F(T0)=1 THEN 83800
84100 IF A(T0)=0 THEN 84400
84200 IF A> 45 THEN 83800
84300 GOTO 84500
84400 PRINT "HE DOESN'T HAVE ONE"
84500 RETURN
84600 F(T0)= F(T0)-1
84700 F(E9)=F(E9)+1
84710 T(T0)=T(T0)+A
84720 T(E9)=T(E9)-A
84800 RETURN
84900
86000 REM THIS ALLOWS A NEW PLAYER
86005 IF A$="YOU" THEN 87000
86010 FOR O9= 1 TO N
86020 IF N$(O9)=A$ THEN 86050
86030 NEXT O9
86040 GOTO 87000
86050 PRINT "INPUT A NAME NOT ALREADY USED";
86060 INPUT A$
86070 GOTO 86010
87000 FORO9= 1 TO N
88000 IF Q(O9)=1 THEN 90500
89000 NEXT O9
89010 IF N<10 THEN 90000
89020 PRINT "TOO MANY PLAYERS. SOMEONE WILL HAVE TO QUIT."
89030 GOTO 59700
90000 N=N+1
90200 Q(N)=0
90300 T(N)=1500
90310 IF A$<>"YOU"THEN 90350
90320 N$(N)="COMPUTER"
90321 W7=W7+1
90330 A(N)=1
90340 GOTO 59700
90350 N$(N)=A$
90400 GOTO 59700
90500 REM THIS IS FOR NEW PLAYER
90700 N$(O9)= A$
90800 Q(O9)=0
90850 P(O9)=0
91100 T(O9)=1500
91110 IF N$(9)<>"YOU" THEN 91150
91120 N$(O9)="COMPUTER"
91121 W7=W7+1
91130 A(O9)=1
91150 GOTO 59700
99999 END