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