home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
games
/
basic-1.zip
/
MONOPOLY.BAS
< prev
next >
Wrap
BASIC Source File
|
1984-05-29
|
26KB
|
1,057 lines
10 REM Converted to Heath Mbasic by: Haywood N. Nichols, Jr.*
20 REM *MicroNet 70020,164|
30 WIDTH 80
40 PRINT CHR$(27);CHR$(69)
50 DIM P$(41),S(41),R(41),V(41),J(41),M(41),K(21),L(41),C(41),B(41),O(41)
60 PRINT "HOW MANY PLAYERS";
70 PRINT "(TYPE '0' FOR INSTRUCTIONS)";
80 INPUT N
90 PRINT CHR$(27);CHR$(69)
100 IF N>0 THEN 130
110 GOSUB 8640
120 GOTO 60
130 IF N<11 THEN 160
140 PRINT" NO MORE THAN 10 CAN PLAY"
150 GOTO 60
160 FOR Q5 = 1 TO N
170 PRINT "NAME";
180 REM THIS PART STARTED FROM 151-2
190 REM A(B)=0 FOR HUMAN, 1 FOR COMPUTER
200 GOTO 260
210 LET N$(Q5)="COMPUTER"
220 A(Q5)=1
230 W7=W7+1
240 REM W7 IS # OF COMPUTER PLAYERS
250 GOTO 420
260 INPUT N$(Q5)
270 IF N$(Q5)="COMPUTER" THEN 210
280 IF N$(Q5)="YOU" THEN 210
290 IF N$(Q5)<>"WHAT" THEN 310
300 GOTO 390
310 Z7=1
320 FOR O1=1 TO Q5-1
330 IF M$(O1)<>N$(Q5) THEN 360
340 PRINT "NAME IN USE, INPUT ANOTHER"
350 GOTO 170
360 NEXT O1
370 M$(Q5)=N$(Q5)
380 GOTO 420
390 PRINT "TYPE PLAYERS NAME (ONE ONLY AT A TIME)"
400 PRINT "'YOU' IF THE COMPUTER IS PLAYING."
410 GOTO 170
420 T(Q5)=1500
430 NEXT Q5
440 IF Z7=1 THEN 470
450 A7=1
460 A8=1
470 FOR B4= 1 TO 40
480 REM READS DATA, P$=NAME,S IS TYPE,R IS RENT, AND C IS COST
490 READ P$(B4),S(B4)
500 REM B3= B= PLAYER NUMBER
510 IF S(B4)>8 THEN 530
520 GOTO 550
530 READ L(B4),C(B4)
540 R(B4)=L(B4)
550 NEXT B4
560 I0=1
570 J0=200
580 LET I=I+1
590 PRINT
600 PRINT "TURN";I
610 PRINT
620 GOSUB 6970
630 IF I0=0 THEN 660
640 GOTO 2840
650 I0=0
660 FOR B3=1 TO N
670 B=B3
680 IF A(B)=1 THEN 720
690 O$="YOU"
700 I$="YOUR"
710 GOTO 750
720 O$="I"
730 I$="MY"
740 REM THIS SETS O AND I$ FOR COMPUTER OR HUMAN
750 R5=0
760 U=0
770 IF Q(B)=1 THEN 3780
780 IF A(B)=1 THEN 840
790 IF N$(B)<>"ME" THEN 820
800 PRINT "YOUR TURN"
810 GOTO 880
820 PRINT N$(B3);"'S TURN"
830 GOTO 880
840 PRINT "MY TURN";
850 IF W7=1 THEN 870
860 PRINT "(PLAYER";B;")";
870 PRINT
880 IF T(B)>0 THEN 900
890 GOSUB 9080
900 IF Q(B)=1 THEN 3780
910 IF E(B)=0 THEN 940
920 B9=B3
930 GOSUB 4830
940 IF T(B)> 100 THEN 960
950 GOSUB 5770
960 IF N(B)>0 THEN 980
970 IF X(B)=0 THEN 1000
980 GOSUB 6290
990 GOTO 1000
1000 B2=INT(RND(1)*6)+1
1010 B1=INT(RND(1)*6)+1
1020 PRINT "THE DICE ARE ON";B1;" AND ";B2
1030 IF B1=B2 THEN 1070
1040 IF J(B)=1 THEN 1210
1050 G(B)=0
1060 GOTO 1570
1070 G(B)= G(B)+1
1080 REM G(B) IS NUMBER OF DOUBLES
1090 IF G(B)>=3 THEN 1160
1100 IF J(B)=1 THEN 1130
1110 REM J(B)= 1IF IN JAIL, =0 IF OUT OF JAIL
1120 GOTO 1570
1130 J(B)=0
1140 PRINT "OUT OF JAIL "
1150 GOTO 2820
1160 J(B)=1
1170 PRINT "3 DOUBLES . IN JAIL"
1180 P(B)=10
1190 GOTO 2830
1200 G(B)=0
1210 IF F(B)>0 THEN 1230
1220 GOTO 1350
1230 PRINT" IN JAIL WILL ";O$;" USE ";I$;" JAILCARD";
1240 IF A(B)=0 THEN 1270
1250 PRINT "?* YES *"
1260 GOTO 1320
1270 INPUT X$
1280 IF LEFT$(X$,1)="N" THEN 1350
1290 IF LEFT$(X$,1)="Y" THEN 1320
1300 PRINT "YES OR NO";
1310 GOTO 1270
1320 F(B)=F(B)-1
1330 D(B)=0
1340 GOTO 1550
1350 IF D(B)<3 THEN 1380
1360 PRINT "THIRD TIME IN JAIL.";O$;" MUST PAY $50."
1370 GOTO 1540
1380 PRINT"IN JAIL. WILL ";O$;" PAY $50";
1390 IF A(B)=0 THEN 1470
1400 D(B)=D(B)+1
1410 IF D(B)=3 THEN 1450
1420 IF T(B)>200 THEN 1450
1430 PRINT"? *NO*"
1440 GOTO 2830
1450 PRINT"? *YES*"
1460 GOTO 1540
1470 P(B)=P(B)+1
1480 INPUT A$
1490 P(B)=10
1500 IF LEFT$(A$,1)="Y" THEN 1540
1510 IF LEFT$(A$,1)="N" THEN 2830
1520 PRINT "TYPE 'YES' OR 'NO'";
1530 GOTO 1350
1540 LET T(B)= T(B)-50
1550 J(B)=0
1560 D(B)=0
1570 P(B)= P(B)+B1+B2
1580 R5=0
1590 U=0
1600 P=P(B)
1610 IF P(B)>40 THEN 1630
1620 GOTO 1670
1630 LET P(B)= P(B)- 40
1640 P=P(B)
1650 T(B)= T(B)+200
1660 PRINT "PASSED GO!! COLLECTED $200 "
1670 IF S(P(B))>10 THEN 1700
1680 GOTO 2350
1690 P=P(B3)
1700 IF V(P(B))>B THEN 2100
1710 REM V(--) IS THE OWNER OF THE PROPERTY
1720 IF V(P(B))<B THEN 1740
1730 GOTO 1760
1740 IF V(P(B))>0 THEN 2100
1750 GOTO 1820
1760 Y9=P(B)
1770 IF A(B)=0 THEN 1800
1780 PRINT "I AM ON ";P$(P);" WHICH I OWN."
1790 GOTO 2820
1800 PRINT "YOU ARE ON ";P$(Y9); " WHICH YOU OWN "
1810 GOTO 2820
1820 LET P=P(B3)
1830 IF A(B)=0 THEN 1860
1840 PRINT P$(P);" IS AVAILABLE AT PRICE $";C(P);" WILL I BUY IT";
1850 GOTO 1880
1860 PRINT "WILL YOU BUY ";P$(P);" FOR $";C(P);
1870 IF A(B)=0 THEN 1930
1880 IF T(B)<200 +C(P) THEN 1910
1890 PRINT "? *YES*"
1900 GOTO 1980
1910 PRINT "? *NO*"
1920 GOTO 2820
1930 INPUT A$
1940 IF LEFT$(A$,1)="Y" THEN 1980
1950 IF LEFT$(A$,1)="N" THEN 2820
1960 PRINT"YES OR NO";
1970 GOTO 1930
1980 LET T(B)= T(B)- C(P(B))
1990 IF R5=1 THEN 2010
2000 GOTO 2020
2010 W(B)=W(B)+1
2020 IF U=1 THEN 2040
2030 GOTO 2050
2040 LET U(B)= U(B)+1
2050 V(P(B))= B
2060 U8=0
2070 GOSUB 4320
2080 GOTO 2820
2090 REM THIS IS RENT ROUTINE
2100 IF R5=0 THEN 2130
2110 R(P(B))= 25* W(V(P(B)))
2120 GOTO 8380
2130 IF U=0 THEN 8380
2140 IF U(B)=2 THEN 2170
2150 U3=4
2160 GOTO 2180
2170 U3=10
2180 GOTO 8370
2190 IF A(W8)=0 THEN 2240
2200 PRINT P$(W9); " IS MINE";
2210 IF W7=1 THEN 2250
2220 PRINT "(PLAYER";W8;")";
2230 GOTO 2250
2240 PRINT P$(W9);" BELONGS TO "; N$(W8);
2250 IF M(P(B))=1 THEN 2300
2260 PRINT ", RENT IS $ "; R(P(B))
2270 T(B)=T(B)-R(P(B))
2280 T(V(P))= T(V(P))+ R(P(B))
2290 GOTO 2820
2300 PRINT " ,BUT IT IS MORTGAGED"
2310 GOTO 2820
2320 P=P(B3)
2330 T(V(P(B)))= T(V(P(B)))+ R(P(B))
2340 GOTO 2820
2350 ON S(P(B)) GOTO 2820,2430,2480,2550,2660,2690,2730,2370,2770,2800
2360 REM FOR UNIQUE SQUARES IT SENDS THE PROGRAM TO THE RIGHT DIRECTION
2370 Y9=P(B)
2380 IF A(B)=0 THEN 2410
2390 PRINT "I AM ON ";P$(Y9);"."
2400 GOTO 2820
2410 PRINT "YOU ARE ON ";P$(Y9)
2420 GOTO 2820
2430 PRINT"COMMUNITY CHEST ";
2440 PRINT "--";
2450 GOSUB 3810
2460 REM GOES TO CHANCE-COMMUNITY CHEST GOSUB
2470 GOTO 2500
2480 PRINT "CHANCE--";
2490 GOSUB 3810
2500 IF V0=1 THEN 2520
2510 GOTO 2820
2520 V0=0
2530 R5=1
2540 GOTO 1700
2550 Z2=.1*(T(B))
2560 IF Z2>0 THEN 2590
2570 PRINT O$;" IS ON INCOME TAX, BUT HAS A NEGATIVE AMOUNT OF MONEY"
2580 GOTO 2820
2590 IF Z2>200 THEN 2630
2600 LET T(B)= T(B)-INT(Z2)
2610 PRINT "INCOME TAX--$";INT(Z2)
2620 GOTO 2820
2630 T(B)= T(B)- 200
2640 PRINT "INCOME TAX-$200"
2650 GOTO 2820
2660 T(B)= T(B)-75
2670 PRINT "LUXURY TAX $75"
2680 GOTO 2820
2690 J(B)=1
2700 P(B)=10
2710 PRINT"GO TO JAIL"
2720 GOTO 2820
2730 PRINT"FREE PARKING-$";J0;"."
2740 T(B)=T(B)+J0
2750 J0=200
2760 GOTO 2820
2770 R5=1
2780 GOTO 1700
2790 GOTO 2820
2800 U=1
2810 GOTO 1690
2820 IF G(B)>0 THEN 1000
2830 PRINT
2840 IF A8=-1 THEN 3060
2850 IF A8=0 THEN 2910
2860 IF A8=5 THEN 2890
2870 A8=A8+1
2880 GOTO 3760
2890 A8=1
2900 GOTO 3060
2910 PRINT "SUMMARY";
2920 INPUT A$
2930 IF A$="AUTO" THEN 2950
2940 GOTO 2970
2950 A8=1
2960 GOTO 3760
2970 IF A$="ALWAYS" THEN 2990
2980 GOTO 3010
2990 A8=-1
3000 GOTO 3060
3010 IF LEFT$(A$,1) = "N" THEN 3760
3020 IF LEFT$(A$,1)="Y" THEN 3060
3030 PRINT "'YES' OR 'NO' OR 'AUTO'( GIVES A SUMMARY EVERY FIVE TURNS"
3040 PRINT "AND DOESN'T ASK YOU ANY MORE"
3050 GOTO 2910
3060 GOTO 3070
3070 FOR J8=1 TO N
3080 X=0
3090 T0=0
3100 IF Q(J8)=1 THEN 3710
3110 T$=" "
3120 IF A(J8)=1 THEN 3180
3130 IF N$(J8)<>"ME" THEN 3160
3140 PRINT "YOU HAVE $";T(J8);
3150 GOTO 3220
3160 PRINT N$(J8);" HAS $";T(J8);
3170 GOTO 3220
3180 PRINT"I";
3190 IF W7=1 THEN 3210
3200 PRINT "(PLAYER";J8;")";
3210 PRINT" HAVE $";T(J8);
3220 FOR J9=1 TO 40
3230 IF V(J9)=J8 THEN 3250
3240 GOTO 3410
3250 IF T$= " " THEN 3270
3260 PRINT ","; T$
3270 T$= P$(J9)
3280 X=X+C(J9)+B(J9)*INT((S(J9)-10)/2+.5)*50 -M(J9)* .5*C(J9)
3290 IF B(T)=0 THEN 3370
3300 IF B(T)>1 THEN 3330
3310 PRINT "(WITH A HOUSE)";
3320 GOTO 3370
3330 IF B(T)<5 THEN 3360
3340 PRINT "(WITH A HOTEL)";
3350 GOTO 3370
3360 PRINT "(WITH";B(T);"HOUSES)";
3370 IF M(T)=0 THEN 3390
3380 PRINT "(MORTGAGED)";
3390 T=J9
3400 IF T0=1 THEN 3520
3410 NEXT J9
3420 IF F(J8)>0 THEN 3480
3430 IF T$<>" " THEN 3460
3440 PRINT "."
3450 GOTO 3670
3460 PRINT ", AND ";T$;
3470 GOTO 3500
3480 IF T$=" " THEN 3530
3490 PRINT",";T$;
3500 T0=1
3510 GOTO 3290
3520 T0=0
3530 IF F(J8)=0 THEN 3610
3540 IF F(J8)=1 THEN 3580
3550 PRINT ",AND ";F(J8);"JAILCARDS.";
3560 X=X+F(J8)*50
3570 GOTO 3670
3580 PRINT ",AND A JAILCARD.";
3590 X=X+50
3600 GOTO 3670
3610 IF T$=" " THEN 3670
3620 K(0)=LEN(T$): FOR XE=1 TO K(0):K(XE)=ASC(MID$(T$,XE,1)):NEXT XE
3630 IF K(K(0))=46 THEN 3660
3640 PRINT ".";
3650 GOTO 3670
3660 GOTO 3670
3670 PRINT
3680 IF X=0 THEN 3700
3690 PRINT " TOTAL ASSETS:$";T(J8)+X;"."
3700 PRINT
3710 NEXT J8
3720 PRINT" ";
3730 PRINT "$";J0;" ON THE FREE PARKING JACKPOT."
3740 PRINT
3750 PRINT
3760 IF I0=0 THEN 3780
3770 GOTO 650
3780 PRINT
3790 NEXT B3
3800 GOTO 580
3810 J5=INT(RND(1)*7)+1
3820 ON J5 GOTO 3830,3870,3930,3990,4050,4100,4130
3830 PRINT "GOTO JAIL!!!"
3840 J(B)=1
3850 P(B)=10
3860 GOTO 4150
3870 PRINT "COLLECT $50 FROM EVERYONE"
3880 FOR Y3=1 TO N
3890 LET T(Y3)= T(Y3)-50
3900 NEXT Y3
3910 T(B)=T(B)+N*50
3920 GOTO 4150
3930 PRINT "GO TO READING"
3940 LET P(B)=5
3950 LET P=5
3960 V0=1
3970 REM V0 TELLS THE PROGRAM TO GO TO READING
3980 RETURN
3990 PRINT "PAY ALL $50"
4000 FOR Y4=1 TO N
4010 T(Y4)= T(Y4)+50
4020 NEXT Y4
4030 T(B)=T(B)-N*50
4040 GOTO 4150
4050 Y2=INT(RND(1)*4)+1
4060 PRINT "PAY $";Y2*50
4070 T(B)=T(B)-Y2*50
4080 J0=J0+Y2*50
4090 GOTO 4150
4100 PRINT "GO DIRECTLY TO GO"
4110 P(B)=40
4120 GOTO 4150
4130 PRINT "TICKET OUT OF JAIL"
4140 F(B)=F(B)+1
4150 RETURN
4160 DATA MEDITERRANEAN,11,2,60,CC,2,BALTIC,11,4,60,IT,4
4170 DATA READING,9,25,200,ORIENTAL,12,6,100,CH,3
4180 DATA VERMONT,12,6,100,CONN.,12,8,120,JAIL,8
4190 DATA ST. CHAS.,13,10,140,ELECTRIC WORKS,10,1,150,STATES
4200 DATA 13,10,140,VIRGINIA,13,12,160,PENNS.RR.,9,25,200
4210 DATA ST.JAMES,14,14,180,CC,2,TENNESSEE,14,14,180
4220 DATA NEW YORK,14,16,200,FP,7,KENTUCKY,15,18,200
4230 DATA CH,3,INDIANA,15,18,220,ILLINOIS,15,20,240
4240 DATA B&O RR,9,25,200
4250 DATA ATLANTIC,16,22,260,VENTNOR
4260 DATA 16,22,260,WATER WORKS,10,1,150,M. GARDENS
4270 DATA 16,24,280,GOJAIL,6,PACIFIC,17,26,300,N.CAROLINA
4280 DATA 17,26,300,CC,2,PENNS. AVE.,17,28,320
4290 DATA SHORTLINE,9,25,200,CHANCE,3,PARKPLACE,18
4300 DATA 35,350,LT,5,BOARDWALK,18,50,400,GO,8
4310 DATA GO,8
4320 Z=0
4330 Z(3)=0
4340 Z(2)=0
4350 Z(1)=0
4360 IF U8=0 THEN 4400
4370 B9=E9
4380 P=E8
4390 GOTO 4420
4400 B9=B3
4410 P=P(B9)
4420 IF S(P)<11 THEN 4550
4430 IF P>4 THEN 4460
4440 LET I7=0
4450 GOTO 4470
4460 I7= P-4
4470 IF P>35 THEN 4500
4480 Q1= P+4
4490 GOTO 4510
4500 Q1=40
4510 FOR W1= I7 TO Q1
4520 IF S(W1) = S(P) THEN 4540
4530 GOTO 4580
4540 IF V(W1)= B9 THEN 4560
4550 RETURN
4560 Z=Z+1
4570 Z(Z)=W1
4580 NEXT W1
4590 E(B9)= E(B9)+1
4600 IF A(B9)=0 THEN 4630
4610 PRINT "I HAVE A MONOPOLY AND THE RENTS ARE DOUBLED"
4620 GOTO 4640
4630 PRINT "YOU NOW HAVE MONOPOLY. THE RENTS ARE DOUBLED"
4640 FOR Z2=1 TO 3
4650 R(Z(Z2))= 2*R(Z(Z2))
4660 O(Z(Z2))=1
4670 NEXT Z2
4680 IF S(Z(1))<11 THEN 4700
4690 GOTO 4710
4700 RETURN
4710 GOSUB 4830
4720 U8=0
4730 RETURN
4740 FOR I1=1 TO 40
4750 IF S(I1)= S(B) THEN 4770
4760 GOTO 4810
4770 IF V(I1)= V9 THEN 4790
4780 RETURN
4790 Z=Z+1
4800 Z(Z)=I1
4810 NEXT I1
4820 GOTO 4630
4830 PRINT" DO ";O$;" WANT HOUSES NOW";
4840 IF A(B9)=0 THEN 4880
4850 IF T(B9)>500 THEN 4940
4860 PRINT "? *NO*"
4870 RETURN
4880 INPUT Z$
4890 IF LEFT$(Z$,1)="N" THEN 4930
4900 IF LEFT$(Z$,1)="Y" THEN 4960
4910 PRINT "YES OR NO";
4920 GOTO 4880
4930 RETURN
4940 I3=1
4950 GOTO 4980
4960 PRINT "LOT, #OF HOUSES";
4970 IF A(B)=0 THEN 5180
4980 FOR I2= 1 TO 40
4990 IF V(I2)<>B9 THEN 5050
5000 IF O(I2)=0 THEN 5050
5010 IF B(I2)>4 THEN 5050
5020 GOTO 5110
5030 H=I2
5040 GOTO 5310
5050 NEXT I2
5060 GOTO 5090
5070 IF I3> 5 THEN 5090
5080 GOTO 4980
5090 PRINT "?*NO*"
5100 RETURN
5110 IF T(B)>1700 THEN 5150
5120 IF B(I2)>5-INT(T(B)/350) THEN 5150
5130 H4=INT (T(B)/350)
5140 GOTO 5160
5150 H4= 5-B(I2)
5160 PRINT "?* YES ";H4;" ON ";P$(I2);"*"
5170 GOTO 5320
5180 INPUT H$,H5
5190 IF LEFT$(H$,1)="N" THEN 4930
5200 IF H$="WHAT" THEN 9440
5210 IF H5>0 THEN 5250
5220 PRINT "A POSITIVE NUMBER PLEASE!"
5230 INPUT H5
5240 GOTO 5210
5250 FOR H=1 TO 40
5260 IF P$(H)= H$ THEN 5310
5270 NEXT H
5280 PRINT "WHAT LOT";
5290 INPUT H$
5300 GOTO 5190
5310 IF A(B)=0 THEN 5370
5320 H5=H4
5330 H=I2
5340 GOTO 5370
5350 PRINT "YOU DON'T OWN THAT"
5360 GOTO 4830
5370 H7=H5+B(H)
5380 GOSUB 5400
5390 GOTO 5650
5400 R(H)=L(H)
5410 IF H7<6 THEN 5450
5420 PRINT " YOU WILL HAVE TO HAVE 5 HOUSES (ONE HOTEL)"
5430 H5=H7-B(H)
5440 H7=5
5450 IF H7>0 THEN 5480
5460 PRINT "YOU CAN'T HAVE LESS THAN 0 HOUSES."
5470 GOTO 5630
5480 B(H)=0
5490 FOR H6= 1 TO H7
5500 B(H)=H6
5510 J=H
5520 IF B(H)=0 THEN 4930
5530 ON B(H) GOTO 5540,5560,5580,5600,5600
5540 R(J)= R(J)*2.5
5550 GOTO 5610
5560 R(J)=R(J)*3
5570 GOTO 5610
5580 R(J)= R(J)*2.3
5590 GOTO 5610
5600 R(J)=R(J)+185
5610 R(J)= 10* INT(R(J)/10 +.5)
5620 NEXT H6
5630 PRINT "THE RENT IS NOW $";R(J);"."
5640 RETURN
5650 C=INT((S(J)-10)/2+.5)*50
5660 IF H5=1 THEN 5690
5670 PRINT "THOSE WERE $";C;"EACH, MAKING $";H5*C;"."
5680 GOTO 5700
5690 PRINT "THAT WAS $";C;"."
5700 T(B9)= T(B9)- H5*C
5710 X(B9)=X(B9)+H5
5720 RETURN
5730 PRINT "ANOTHER";
5740 GOTO 4840
5750 RETURN
5760 GOTO 4500
5770 PRINT "WHAT DO ";O$;" WANT TO MORTGAGE";
5780 I3=1
5790 IF A(B)=0 THEN 5970
5800 IF T(B)>150 THEN 5920
5810 FOR I4= 1 TO 40
5820 IF V(I4)=B THEN 5840
5830 GOTO 5900
5840 IF O(I4)= I3 THEN 5900
5850 IF M(I4)=1 THEN 5900
5860 IF B(I4)<>0 THEN 5900
5870 PRINT "? *";P$(I4);"*"
5880 Z5=I4
5890 GOTO 6060
5900 NEXT I4
5910 IF I3=1 THEN 5950
5920 PRINT "? *NOTHING*"
5930 RETURN
5940 GOTO 6170
5950 I3=0
5960 GOTO 5810
5970 INPUT Z$
5980 IF Z$="WHAT" THEN 9470
5990 IF LEFT$(Z$,3)<>"NOT" THEN 6010
6000 RETURN
6010 FOR Z5 = 1 TO 40
6020 IF P$(Z5)=Z$ THEN 6060
6030 NEXT Z5
6040 PRINT "WHAT";
6050 GOTO 5970
6060 IF B(Z5)>0 THEN 6180
6070 FOR X=1 TO 40
6080 IF S(X) <> S(Z5) THEN 6120
6090 IF B(X)=0 THEN 6120
6100 PRINT "THERE ARE HOUSES ON OTHER LOTS OF MONPOLY. YOU MUST SELL THEM."
6110 GOTO 5770
6120 NEXT X
6130 GOTO 6210
6140 M(Z5)=1
6150 N(B)= N(B)+1
6160 T(B)= T(B)+.5*C(Z5)
6170 GOTO 5770
6180 PRINT "THERE ARE HOUSES ON IT"
6190 GOTO 5770
6200 RETURN
6210 IF V(Z5)>B3 THEN 6260
6220 IF V(Z5)<B3 THEN 6260
6230 IF M(Z5)=0 THEN 6250
6240 PRINT"IT ALREADY IS"
6250 GOTO 6140
6260 PRINT" YOU DON'T OWN THAT"
6270 GOTO 5780
6280 RETURN
6290 PRINT "UNMORTGAGE WHAT";
6300 IF A(B)=0 THEN 6420
6310 IF T(B)<150 THEN 6400
6320 FOR E0= 1 TO 40
6330 IF V(E0)= B THEN 6350
6340 GOTO 6390
6350 IF M(E0)=0 THEN 6390
6360 PRINT "?*"; P$(E0);"*"
6370 E=E0
6380 GOTO 6540
6390 NEXT E0
6400 PRINT "? *NOTHING*"
6410 GOTO 6650
6420 INPUT Z$
6430 IF Z$<>"WHAT" THEN 6470
6440 PRINT "TYPE 'NOTHING', A PROPERTY NAME, OR 'HOUSES' IF"
6450 PRINT "YOU WANT TO SELL THEM."
6460 GOTO 6420
6470 IF LEFT$(Z$,3)="NOT" THEN 6650
6480 IF Z$="HOUSES" THEN 6660
6490 FOR E=1 TO 40
6500 IF P$(E)=Z$ THEN 6540
6510 NEXT E
6520 PRINT "WHAT";
6530 GOTO 6420
6540 IF M(E)=1 THEN 6570
6550 PRINT "IT ISN'T MORTGAGED"
6560 GOTO 6290
6570 IF V(E)=B THEN 6600
6580 PRINT "YOU DON'T OWN IT"
6590 GOTO 6290
6600 M(E)=0
6610 N(B)= N(B)-1
6620 T(B)=T(B)-INT(.6*C(E))
6630 PRINT "WITH INTEREST THAT WAS$";INT(.6*C(E))
6640 IF N(B)>0 THEN 6290
6650 RETURN
6660 PRINT"LOT,# OF HOUSES";
6670 INPUT Z$,E2
6680 IF E2>0 THEN 6710
6690 PRINT "INPUT A POSITIVE NUMBER"
6700 GOTO 6660
6710 IF Z$="NO" THEN 6170
6720 GOTO 6760
6730 PRINT "TYPE IN THE NAME OF THE LOT THEN THE # OF HOUSES YOU ARE"
6740 PRINT"SELLING. TO SELL NONE TYPE 'NO'"
6750 GOTO 6660
6760 FOR E3=1 TO 40
6770 IF P$(E3)=Z$ THEN 6820
6780 NEXT E3
6790 PRINT "WHAT LOT";
6800 INPUT Z$
6810 GOTO 6710
6820 B(E3)= B(E3)-E2
6830 X(B)=X(B)-E2
6840 IF B(E3)<0 THEN 6930
6850 H=E3
6860 H7=B(H)
6870 GOSUB 5400
6880 E4=INT((S(E3)-10)/2+.5)*25
6890 E4=E4*E2
6900 PRINT" YOU GET$";E4
6910 T(B)=T(B)+E4
6920 GOTO 6290
6930 PRINT "YOU DON'T HAVE THAT MANY"
6940 B(E3)=B(E3)+E2
6950 GOTO 6660
6960 GOTO 6290
6970 IF A7=1 THEN 7110
6980 IF E6=0 THEN 7020
6990 E6=E6+1
7000 IF E6<3 THEN 7150
7010 E6=1
7020 PRINT "CHANGES";
7030 E6=0
7040 INPUT Z$
7050 IF Z$<>"WHAT" THEN 7080
7060 PRINT "'YES', 'NO','NEVER',OR 'DELAY'( WILL ASK AGAIN IN THREE TURNS";
7070 GOTO 7040
7080 IF Z$= "NEVER" THEN 7100
7090 GOTO 7120
7100 A7=1
7110 RETURN
7120 IF Z$="YES" THEN 7230
7130 IF Z$<>"DELAY" THEN 7170
7140 E6=1
7150 PRINT
7160 RETURN
7170 IF Z$="NO" THEN 7150
7180 PRINT "TYPE 'YES', OR 'NO' IF YOU WANT TO MAKE CHANGES OR NOT"
7190 PRINT "OR 'DELAY' TO HAVE IT ASK YOU LATER"
7200 GOTO 7020
7210 RETURN
7220 IF T(B9)> 300 THEN 4940
7230 GOTO 7270
7240 REM THIS PART WILL TRANSFERR OWNERSHIP OF A PROPERTY
7250 REM TO SOMEONE ELSE AND TRANSFER SOME MONEY TO
7260 REM TO CORRRESPOND
7270 PRINT "('WHAT,A,0' FOR INST.)";
7280 INPUT Z$,A$,A
7290 IF Z$="NEW PLAYER" THEN 10190
7300 IF A$<>"YOU" THEN 7320
7310 A$="COMPUTER"
7320 IF Z$="NEW PLAYER" THEN 10190
7330 IF Z$="WHAT" THEN 9490
7340 IF Z$= "NO" THEN 8300
7350 IF Z$="QUIT" THEN 7650
7360 IF Z$="JAIL CARD" THEN 7650
7370 IF Z$="JAILCARD" THEN 7650
7380 IF A$<>"BANK" THEN 7420
7390 GOTO 7650
7400 PRINT" THAT'S ILLEGAL!"
7410 GOTO 7270
7420 FOR E8=1 TO 40
7430 IF P$(E8)= Z$ THEN 7520
7440 NEXT E8
7450 PRINT "WHAT LOT";
7460 INPUT Z$
7470 IF Z$ <> "WHAT" THEN 7500
7480 PRINT"TYPE THE PROPERTY NAME OR 'NO'"
7490 GOTO 7460
7500 IF Z$="NO" THEN 7020
7510 GOTO 7420
7520 IF S(E8)<9 THEN 8310
7530 T8=0
7540 IF V(E8)=0 THEN 8330
7550 IF B(E8)>0 THEN 7630
7560 FOR I2= 1 TO 40
7570 IF S(I2)<>S(E8) THEN 7610
7580 IF B(I2)=0 THEN 7610
7590 PRINT "THERE ARE HOUSES ON OTHER LOTS OF MONOPOLY.YOU MUST SELL THEM."
7600 GOTO 7020
7610 NEXT I2
7620 GOTO 7650
7630 PRINT "THERE ARE HOUSES ON IT"
7640 GOTO 7270
7650 T8=0
7660 FOR E9= 1 TO N
7670 IF N$(E9)=A$ THEN 7690
7680 GOTO 7700
7690 T8=T8+1
7700 NEXT E9
7710 ON T8+1 GOTO 7830,7920,7720,7720,7720,7720,7720,7720,7720,7720
7720 PRINT "WHICH PLAYER NO.('-1' FOR INSTRUCTIONS)";
7730 INPUT E9
7740 IF E9>0 THEN 7780
7750 PRINT "TYPE THE PLAYER NO. OF THE PIECE. BECAUSE I"
7760 PRINT "PLAY MORE THAN ONE PLAYER, I MUST KNOW WHICH";
7770 GOTO 7730
7780 IF E9>N THEN 7720
7790 IF A(E9)=1 THEN 7820
7800 PRINT"I AM NOT ";N$(E9)
7810 GOTO 7720
7820 GOTO 7920
7830 PRINT "WHO";
7840 INPUT A$
7850 IF A$="NO" THEN 8350
7860 IF A$<>"WHAT" THEN 7880
7870 PRINT "TYPE NEW OWNER'S NAME OR 'NO'";
7880 GOTO 7650
7890 REM THIS IS FOR JAILCARDS
7900 GOSUB 9680
7910 GOTO 7020
7920 GOTO 7930
7930 FOR E9=1 TO N
7940 IF N$(E9)<>A$ THEN 7960
7950 GOTO 7970
7960 NEXT E9
7970 B=E9
7980 IF Z$="JAILCARD" THEN 7890
7990 IF Z$<>"QUIT" THEN 8030
8000 B=E9
8010 GOSUB 9310
8020 GOTO 7020
8030 U5=V(E8)
8040 IF A$="BANK" THEN 8150
8050 IF A(V(E8))=1 THEN 8480
8060 IF A(E9)=1 THEN 8420
8070 T(V(E8))= T(V(E8))+A
8080 IF S(E8)<>9 THEN 8110
8090 W(V(E8))=W(V(E8))-1
8100 W(E9)=W(E9)+1
8110 IF S(E8)<>10 THEN 8140
8120 U(V(E8))=U(V(E8))-1
8130 U(E9)=U(E9)+1
8140 LET V(E8)= E9
8150 T(E9)= T(E9)-A
8160 IF A$="BANK" THEN 7020
8170 IF O(E8)=1 THEN 8190
8180 GOTO 8270
8190 FOR O9= 1 TO 40
8200 IF S(O9)=S(E8) THEN 8220
8210 GOTO 8240
8220 LET R(O9)= R(O9)/2
8230 O(O9)=0
8240 NEXT O9
8250 PRINT "NO LONGER A MONOPOLY THERE"
8260 LET E(U5)= E(U5)-1
8270 U8=1
8280 P=E8
8290 GOSUB 4320
8300 GOTO 7020
8310 PRINT" YOU FOOL, YOU CANT OWN ";Z$;"!!!!"
8320 GOTO 7270
8330 PRINT "IT ISN'T OWNED"
8340 GOTO 7270
8350 GOTO 7020
8360 REM THIS BELONGS TO LINES 1049--
8370 R(P(B))=INT(RND(1)*6+1)*U3
8380 W9=P(B)
8390 W8=V(P(B))
8400 GOTO 2190
8410 W8=V(P(B))
8420 IF T(E9)> 200+ C(E8) THEN 8450
8430 PRINT "I DONT ACCEPT"
8440 GOTO 7230
8450 IF A> 150+C(E8) THEN 8430
8460 PRINT "I ACCEPT"
8470 GOTO 8070
8480 IF O(E8)=1 THEN 8580
8490 IF A>2*C(E8) THEN 650
8500 IF S(O1)<>S(E8) THEN 8520
8510 IF V(O1)<>E9 THEN 8560
8520 NEXT O1
8530 IF T(V(E8))>200 THEN 8580
8540 IF A<C(E8)+200 THEN 8580
8550 GOTO 8620
8560 IF T(V(E8))<200 THEN 8600
8570 GOTO 8580
8580 PRINT "I WON'T SELL"
8590 GOTO 7230
8600 IF A> 1.5* C(E8) THEN 8620
8610 GOTO 8580
8620 PRINT "IT IS A DEAL"
8630 GOTO 8070
8640 PRINT " THIS PROGRAM WILL HANDLE UP TO TEN PLAYERS"
8650 PRINT "OR PIECES. IT WILL DO ALL ROUTINE JOBS SUCH AS"
8660 PRINT"ROLLING THE DICE,MOVING PIECES, AND INFORMING THE"
8670 PRINT "PLAYERS OF ALL OPTIONS. IT WILL ACTUALLY PLAY THE"
8680 PRINT"GAME MAKING THE DECISIONS OF ANY NUMBER OF PLAYERS."
8690 PRINT"WANT THE COMPUTER TO DO THIS TYPE 'YOU' WHEN IT ASKS"
8700 PRINT"FOR THE NAME."
8710 PRINT
8720 PRINT"THIS PROGRAM IS FAIRLY SELF-EXPLANATORY, HOWEVER THE FOLLOWING"
8730 PRINT "THINGS MUST BE KEPT IN MIND:"
8740 PRINT
8750 PRINT" 1. IF A QUESTION IS NOT UNDERSTOOD,TYPING 'WHAT' WILL"
8760 PRINT "USUALLY GIVE INSTRUCTIONS. HOWEVER SOME QUESTIONS WILL"
8770 PRINT "ASK FOR MORE THAN ONE THING AND THIS NUMBER OF THINGS MUST"
8780 PRINT "BE TYPED SEPERATED BY COMMAS. ALSO CARE MUST BE "
8790 PRINT "TAKEN THAT ALL INPUTS ARE EITHER NUMERIC OR ALPHABETIC"
8800 PRINT "AS ASKED FOR. EXAMPLE:"
8810 PRINT " LOT, # OF HOUSES? WHAT,0"
8820 PRINT "WILL GIVE INSTRUCTIONS."
8830 PRINT :PRINT
8840 INPUT "TO CONTINUE HIT <CR>";YN$
8850 PRINT CHR$(27);CHR$(69)
8860 PRINT " 2. THE COMPUTER WILL OFTEN ASK IF YOU WANT CHANGES"
8870 PRINT "OR A SUMMARY. THE CHANGES ROUTINE WILL BE DESCRIBED"
8880 PRINT "BELOW, BUT IF YOU DON'T WANT TO BE BOTHERED WITH THAT"
8890 PRINT "EVERYTIME, TYPE 'NEVER' TO HAVE IT STOP ASKING"
8900 PRINT "COMPLETELY, OR 'DELAY' TO HAVE IT ASK IN THREE"
8910 PRINT "TURNS. FOR SUMMARY TYPE 'AUTO' AND IT WILL "
8920 PRINT "GIVE A SUMMARY EVERY 5 TURNS, WITHOUT ASKING YOU AGAIN"
8930 PRINT" 3. TO SELL PROPERTIES OR ADD AND DROP PLAYERS USE THE "
8940 PRINT "CHANGES ROUTINE. TYPE 'YES' WHEN IT ASKS 'CHANGES?'"
8950 PRINT "TYPE 'YES' THEN TYPE 'WHAT,A,0' FOR COMPLETE INSTRUCTIONS"
8960 PRINT " 4. FIVE HOUSES ARE EQUIVALENT TO ONE HOTEL."
8970 PRINT " 5. IF YOU TYPE 'YOU' FOR ALL THE NAMES"
8980 PRINT "THE COMPUTER WILL PLAY ITSELF WITHOUT"
8990 PRINT "ASKING YOU FOR ANYTHING. TYPING 'CNTRL O'"
9000 PRINT "WILL MAKE THE GAME CONTINUE WITHOUT TYPING ANYTHING"
9010 PRINT "OUT, AND A 'CNTRL C' THEN 'CONTINUE' WILL START"
9020 PRINT "PRINTING THE GAME OUT AFTER IT IS FAR ALONG.
9030 PRINT " 6. TO SELL HOUSES, WAIT UNTIL THE COMPUTER ASKS"
9040 PRINT "UNMORTGAGE WHAT? AND TYPE 'HOUSES' THEN ANSWER"
9050 PRINT "ANSWER FURTHAR QUESTIONS."
9060 RETURN
9070 PRINT
9080 IF N7=1 THEN 9270
9090 IF A(B)=0 THEN 9170
9100 FOR I2= 1 TO N
9110 IF Q(I2)=1 THEN 9130
9120 IF A(I2)=0 THEN 9150
9130 NEXT I2
9140 GOTO 9270
9150 PRINT "I AM $";ABS(T(B));"IN THE RED. SHOULD I QUIT";
9160 GOTO 9180
9170 PRINT "YOU ARE $";ABS(T(B));"IN THE HOLE. WILL YOU QUIT";
9180 INPUT Z$
9190 IF LEFT$(Z$,1)="Y" THEN 9310
9200 IF LEFT$(Z$,1)="N" THEN 9260
9210 IF LEFT$(Z$,1)="L" THEN 9270
9220 PRINT "TYPE 'YES' TO QUIT OR 'NO' TO KEEP GOING"
9230 PRINT "AND PAYING 5% INTEREST ON THE NEGATIVE AMMOUNT"
9240 PRINT "OR 'LATER' TO NOT QUIT NOW BUT KEEP THE COMPUTER ASKING"
9250 GOTO 9180
9260 N7=1
9270 I1=INT(ABS(.05*T(B)+ .5))
9280 PRINT "5% INTEREST IS $";I1
9290 T(B)= T(B) - I1
9300 RETURN
9310 Q(B)=1
9320 T(B)=0
9330 FOR I2=1 TO 40
9340 IF V(I2)<>B THEN 9400
9350 V(I2)=0
9360 M(I2)=0
9370 B(I2)=0
9380 R(I2)=L(I2)
9390 O(I2)=0
9400 NEXT I2
9410 N$(B)=" "
9420 RETURN
9430 GOTO 6420
9440 PRINT "TYPE PROPERTY NAME THEN NUMBER OF HOUSES OR"
9450 PRINT "'NO,0' TO DO NOTHING"
9460 GOTO 5160
9470 PRINT "TYPE A PROPERTY NAME OR 'NOTHING' ";
9480 GOTO 5970
9490 PRINT " THIS ROUTINE CAN DO SEVERAL THINGS:"
9500 PRINT " 1. TO SELL PROPERTY FROM ONE PERSON TO ANOTHER"
9510 PRINT "TYPE THE PROPERTY NAME,THE NEW OWNER'S NAME, THEN"
9520 PRINT "THE AMOUNT IT IS BEING SOLD FOR."
9530 PRINT " 2. TO SELL A JAILCARD, TYPE 'JAILCARD',THE NEW OWNERS"
9540 PRINT "NAME, THEN THE AMOUNT IT IS BEING SOLD FOR."
9550 PRINT "IF NEEDED THE COMPUTER WILL ASK WHO IT CAME FROM."
9560 PRINT " 3. FOR EITHER OF THE ABOVE,'YOU' CAN BE USED AS THE"
9570 PRINT "NEW OWNER'S NAME,OR THE COMPUTERS PROPERTY CAN BE USES"
9580 PRINT "THE COMPUTER WILL THEN DECIDE IF IT WILL ACCEPT YOUR OFFER,"
9590 PRINT "AND TELL YOU IF IT WILL BUY OR SELL."
9600 PRINT " 4. TO ADD A NEW PLAYER TYPE:'NEW PLAYER',HIS NAME,'0'"
9610 PRINT " 5. TO DROP A PLAYER TYPE:'QUIT',HIS NAME,'0'"
9620 PRINT
9630 GOTO 7270
9640 B=E9
9650 REMARK THIS IS FOR QUITING FORM CHANGE ROUTINE
9660 GOSUB 9310
9670 GOTO 7020
9680 REM THIS IS FOR CHANGING JAILCARDS
9690 IF N<>2 THEN 9720
9700 T0=3-E9
9710 GOTO 9950
9720 PRINT "WHO FROM";
9730 INPUT Z$
9740 IF Z$<>"WHAT" THEN 9780
9750 PRINT"TYPE THE PERSON'S NAME FROM WHOM THE CARD"
9760 PRINT" CAME.";N$(E9);" HAD IT. WHO HAS IT NOW";
9770 GOTO 9730
9780 IF Z$<>"YOU" THEN 9900
9790 IF W8=1 THEN 9890
9800 PRINT "WHICH #";
9810 PRINT "('0' FOR INST.)";
9820 INPUT O3
9830 IF O3>0 THEN 9860
9840 PRINT "I AM PLAYING SEVERAL PLAYERS. TYPE NO. OF ONE YOU WANT";
9850 GOTO 9820
9860 IF O3>N THEN 9840
9870 T0=O3
9880 GOTO 9950
9890 Z$="COMPUTER"
9900 FOR T0= 1 TO 40
9910 IF N$(T0)= Z$ THEN 9950
9920 NEXT T0
9930 PRINT "WHO ";
9940 GOTO 9730
9950 IF A(T0)=0 THEN 10030
9960 IF A>45 THEN 9990
9970 IF A<30 THEN 10010
9980 GOTO 10010
9990 PRINT" OK"
10000 GOTO 10140
10010 PRINT" NO"
10020 RETURN
10030 IF A(E9)=0 THEN 10080
10040 IF A>50 THEN 10010
10050 IF F(E9)=1 THEN 10010
10060 IF T(E9)<200 THEN 10010
10070 GOTO 9990
10080 IF F(T0)=1 THEN 10010
10090 IF A(T0)=0 THEN 10120
10100 IF A> 45 THEN 10010
10110 GOTO 10130
10120 PRINT "HE DOESN'T HAVE ONE"
10130 RETURN
10140 F(T0)= F(T0)-1
10150 F(E9)=F(E9)+1
10160 T(T0)=T(T0)+A
10170 T(E9)=T(E9)-A
10180 RETURN
10190 REM THIS ALLOWS A NEW PLAYER
10200 IF A$="YOU" THEN 10280
10210 FOR O9= 1 TO N
10220 IF N$(O9)=A$ THEN 10250
10230 NEXT O9
10240 GOTO 10280
10250 PRINT "INPUT A NAME NOT ALREADY USED";
10260 INPUT A$
10270 GOTO 10210
10280 FOR O9= 1 TO N
10290 IF Q(O9)=1 THEN 10440
10300 NEXT O9
10310 IF N<10 THEN 10340
10320 PRINT "TOO MANY PLAYERS. SOMEONE WILL HAVE TO QUIT."
10330 GOTO 7020
10340 N=N+1
10350 Q(N)=0
10360 T(N)=1500
10370 IF A$<>"YOU" THEN 10420
10380 N$(N)="COMPUTER"
10390 W7=W7+1
10400 A(N)=1
10410 GOTO 7020
10420 N$(N)=A$
10430 GOTO 7020
10440 REM THIS IS FOR NEW PLAYER
10450 N$(O9)= A$
10460 Q(O9)=0
10470 P(O9)=0
10480 T(O9)=1500
10490 IF N$(9)<>"YOU" THEN 10530
10500 N$(O9)="COMPUTER"
10510 W7=W7+1
10520 A(O9)=1
10530 GOTO 7020
10540 END
0480 T(O9)=1500
10490 IF N$(9)<>"YOU" THEN 10530
10500 N$(O9)="COM