10 REM MNPLY.ECB 100 REM ......MONOPOLY.....5-07-80 110 LET D=0: LET K$="&K": LET J$="&J": PRINT K$ 120 DIM C(2,16),H(2,2),P(28,16),S(8,3),X(40),Y(40),Z(40) 130 DIM P$(35),R$(35),W$(50) 135 IF Q9=10 THEN 930 140 PRINT TAB(15);"This is the game of MONOPOLY.";J$;J$;J$ 141 DATA 1,1,1,1,1,1,1,1,1,1,3,4,5,6,7,8,9,10,11,13 142 DATA 13,13,13,13,13,13,13,13,13,13,11,10,9,8,7,6,5,4,3,1 143 DATA 10,15,20,25,30,35,40,45,50,55,59,59,59,59,59,59,59,59 144 DATA 59,55,50,45,40,35,30,25,20,15,10,5,1,1,1,1,1,1,1,1,1,5 145 FOR A=1 TO 40: READ Y(A): NEXT A 146 FOR A=1 TO 40: READ Z(A): NEXT A 150 PRINT "Do you wish the RULES?"; 160 INPUT (1,0)" ---=>",A$: LET A$=A$+"N" 170 IF A$(1,1)="Y" THEN 230 180 IF A$(1,1)="N" THEN 930 190 PRINT "ANSWER with YES or NO or C";J$ 200 GOTO 160 230 PRINT : PRINT 260 PRINT " You and I play against each other." 270 PRINT "We will each start with $1000. The winner will" 280 PRINT "be the 1st one to reach $7,000 or the one who" 290 PRINT "forces the other player into BANKRUPTCY.";J$ 300 PRINT "The following OPTIONS will help you control" 310 PRINT " the play of the game.";J$ 330 INPUT (1,0)"+*+ Continue ---=>",Z$: LET Z$=Z$+"C" 340 PRINT 350 IF Z$(1,1)="Y" THEN 390 355 IF Z$(1,1)="C" THEN 390 360 IF Z$(1,1)="N" THEN 930 370 PRINT "ANSWER with YES or NO or C";J$ 380 GOTO 340 390 PRINT K$ 400 GOSUB 7600 930 PRINT : LET B(1)=0: LET B(2)=0 970 IF Q9=10 THEN LET Q9=9 980 LET A=RND(0) 990 FOR A=1 TO 2 1000 LET M(A)=1000 1010 FOR B=1 TO 16 1020 LET C=INT(16*RND(0)+1) 1030 LET D=1 1040 IF C=C(A,D) THEN 1020 1050 LET D=D+1: IF D"Y" THEN 1150 1140 PRINT "Prop.#","PROPERTY" 1150 FOR Z=1 TO 36 1170 IF Z>28 THEN 1200 1180 IF A$(1,1)<>"Y" THEN 1200 1190 PRINT Z;" ";: GOSUB 8200: PRINT 1200 NEXT Z 1210 IF Q9=9 THEN 1240 1220 PRINT "WHAT IS YOUR NAME?"; 1230 INPUT (8,0)" ---=>",W$ 1240 FOR A=LEN(W$) TO 7: LET W$=W$+" ": NEXT A 1250 LET W$=W$+"COMPUTORNobody No Yes HELP " 1270 LET A=INT(2*RND(0)+1) 1280 LET R=1 1290 LET Y=0 1300 PRINT 1310 PRINT 1320 PRINT 1330 PRINT 1340 PRINT 1350 PRINT "It is now ";W$(A*8-7,A*8);"'s turn: "; 1360 LET O(A)=0: LET D=0 1370 LET D1=INT(6*RND(0)+1) 1380 LET D2=INT(6*RND(0)+1) 1390 PRINT "DICE ";D1;" and ";D2 1400 IF D1<>D2 THEN 1630 1410 PRINT "*** DOUBLES *** ";D1;" and ";D2 1420 IF J(A)=0 THEN 1450 1430 PRINT W$(A*8-7,A*8);" Gets out of JAIL FREE with DOUBLES." 1440 LET J(A)=0 1450 LET Y=Y+1 1460 IF Y<3 THEN 1730 1470 PRINT W$(A*8-7,A*8);" GOES TO JAIL for DOUBLES THREE TIMES IN A ROW." 1480 LET Y=0 1490 LET B(A)=10 1500 IF A=1 THEN 1540 1510 PRINT "COMPUTOR will pay it's way out of JAIL." 1520 GOTO 1670 1530 PRINT 1540 PRINT W$(A*8-7,A*8);" PAY your way OUT OF JAIL or WAIT (PAY,WAIT)"; 1550 INPUT (1,0)" ---=>",A$: LET A$=A$+"W" 1560 IF A$(1,1)="P" THEN 1670 1570 IF A$(1,1)="W" THEN 1600 1580 PRINT "ENTER PAY or WAIT " 1590 GOTO 1550 1600 LET J(A)=J(A)+1 1610 PRINT " YOU ARE STILL IN JAIL ";W$(A*8-7,A*8) 1620 GOTO 1700 1630 PRINT 1640 IF J(A)=0 THEN 1730 1650 IF J(A)<3 THEN 1500 1660 PRINT W$(A*8-7,A*8);" will HAVE to PAY his way out of JAIL. "; 1670 LET J(A)=0 1680 LET O(A)=O(A)+50 1690 LET M=M+50 1700 PRINT W$(A*8-7,A*8);" CANNOT MOVE THIS TURN." 1710 LET D1=D2+1 1720 GOTO 3240 1730 LET B(A)=B(A)+D1+D2 1740 IF B(A)<40 THEN 1800 1750 IF B(A)=40 THEN 1780 1760 LET B(A)=B(A)-40 1770 PRINT " *** PASSED GO. "; 1780 LET M(A)=M(A)+200 1790 PRINT "COLLECT $200 ***" 1800 LET C=X(B(A)) 1810 IF C<>32 THEN 1840 ELSE 1820 1820 PRINT W$(A*8-7,A*8);" landed on ";" JUST VISITING JAIL" 1830 GOTO 1880 1840 IF C<>36 THEN 1870 ELSE 1850 1850 PRINT W$(A*8-7,A*8);" landed on ";" *GO*";J$ 1860 GOTO 1880 1870 PRINT W$(A*8-7,A*8);" landed on ";: LET Z=C 1875 GOSUB 8200: PRINT 1880 IF C<29 THEN 3280 1890 ON C-28 GOTO 1900,2450,3090,3260,3120,1490,3220,3260 1900 LET C1=C1+1 1910 IF C1<17 THEN 1930 1920 LET C1=C1-16 1930 IF C(1,C1)>=9 THEN 1950 1940 ON C(1,C1) GOTO 1960,1990,2020,2050,2080,2100,2130,2160 1950 ON C(1,C1)-8 GOTO 2190,2230,2260,2300,2330,2350,2380,2410 1960 PRINT "SCHOOL TAX: pay $150" 1970 LET D=150 1980 GOTO 3240 1990 PRINT "BANK ERROR IN YOUR FAVOR: collect $200" 2000 LET M(A)=M(A)+200 2010 GOTO 3240 2020 PRINT "YOU INHERIT $100" 2030 LET M(A)=M(A)+100 2040 GOTO 3240 2050 PRINT "ADVANCE TO GO "; 2060 LET B(A)=40 2070 GOTO 1780 2080 PRINT "XMAS FUND MATURES: collect $100" 2090 GOTO 2030 2100 PRINT "RECIEVE FOR SERVICES $25" 2110 LET M(A)=M(A)+25 2120 GOTO 3240 2130 PRINT 2140 PRINT "GO TO JAIL! DO NOT PASS GO! DO NOT COLLECT $200" 2150 GOTO 1490 2160 PRINT "GET OUT OF JAIL FREE. You will get $50" 2170 LET M(A)=M(A)+50 2180 GOTO 3240 2190 PRINT "COLLECT $50 FROM EACH PLAYER." 2200 LET M(A)=M(A)+50 2210 LET O(3-A)=O(3-A)+50 2220 GOTO 3240 2230 PRINT "FROM SALE OF STOCK YOU GET $45" 2240 LET M(A)=M(A)+45 2250 GOTO 3240 2260 PRINT 2270 PRINT "YOU WIN 2nd PRIZE in BEAUTY CONTEST: collect $10" 2280 LET M(A)=M(A)+10 2290 GOTO 3240 2300 PRINT "PAY HOSPITAL BILL OF $100" 2310 LET D=100 2320 GOTO 3240 2330 PRINT "LIFE INSURANCE MATURES: collect $100" 2340 GOTO 2030 2350 PRINT "INCOME TAX REFUND: collect $20" 2360 LET M(A)=M(A)+20 2370 GOTO 3240 2380 PRINT "DOCTORS FEE: pay $50" 2390 LET D=50 2400 GOTO 3240 2410 PRINT 2420 PRINT "STREET REPAIRS. PAY $40 per HOUSE,$115 per HOTEL" 2430 LET D=40*H(A,1)+115*H(A,2) 2440 GOTO 3240 2450 LET C2=C2+1 2460 IF C2<17 THEN 2480 2470 LET C2=C2-16 2480 IF C(2,C2)>=9 THEN 2500 2490 ON C(2,C2) GOTO 2510,2540,2570,2630,2690,2780,2820,2130 2500 ON C(2,C2)-8 GOTO 2850,2050,2980,3000,2160,3020,3060,2850 2510 PRINT "GO BACK THREE SPACES" 2520 LET B(A)=B(A)-3 2530 GOTO 1800 2540 PRINT "BUILDING and LOAN MATURES: collect $150" 2550 LET M(A)=M(A)+150 2560 GOTO 3240 2570 PRINT "ADVANCE to ST. CHARLES PLACE" 2580 IF B(A)<12 THEN 2610 2590 PRINT "PASSED *GO*: collect $200" 2600 LET M(A)=M(A)+200 2610 LET B(A)=11 2620 GOTO 1800 2630 PRINT "ADVANCE to ILLINOIS AVE." 2640 IF B(A)<25 THEN 2670 2650 PRINT "PASSED GO COLLECT $200" 2660 LET M(A)=M(A)+200 2670 LET B(A)=24 2680 GOTO 1800 2690 PRINT "ADVANCE to NEAREST UTILITY" 2700 IF B(A)=22 THEN 2750 2710 IF B(A)=7 THEN 2740 2720 PRINT "PASSED *GO* : collect $200" 2730 LET M(A)=M(A)+200 2740 LET B(A)=6 2750 LET B(A)=B(A)+6 2760 LET R=10*(D1+D2) 2770 GOTO 1800 2780 PRINT 2790 PRINT "STREET REPAIRS: $25 per HOUSE, $100 per HOTEL." 2800 LET D=25*H(A,2)+100*H(A,2) 2810 GOTO 3240 2820 PRINT "ADVANCE to BOARDWALK" 2830 LET B(A)=39 2840 GOTO 1800 2850 PRINT "ADVANCE to the NEAREST RAILROAD" 2860 PRINT "Pay TWICE the rent." 2870 LET R=2*R 2880 IF B(A)=7 THEN 2960 2890 IF B(A)=22 THEN 2940 2900 LET M(A)=M(A)+200 2910 PRINT "PASSED *GO* : collect $200" 2920 LET B(A)=5 2930 GOTO 1800 2940 LET B(A)=25 2950 GOTO 1800 2960 LET B(A)=15 2970 GOTO 1800 2980 PRINT "BANK PAYS YOU DIVIDEND of $50" 2990 GOTO 2170 3000 PRINT "Take a ride on the READING RAILROAD" 3010 GOTO 2900 3020 PRINT "PAY EACH PLAYER $50" 3030 LET M(3-A)=M(3-A)+50 3040 LET O(A)=O(A)+50 3050 GOTO 3240 3060 PRINT "PAY POOR TAX of $15" 3070 LET D=15 3080 GOTO 3240 3090 PRINT "PAY $200" 3100 LET D=200 3110 GOTO 3240 3120 IF M=0 THEN 3170 3130 PRINT "YOU COLLECT $";M;" from the MIDDLE." 3140 LET M(A)=M(A)+M 3150 LET M=0 3160 GOTO 3240 3170 PRINT "There is NOTHING in the middle." 3180 GOTO 3240 3190 LET M(A)=M(A)+M 3200 REM 3210 REM 3220 PRINT "PAY $75" 3230 LET D=75 3240 LET O(A)=O(A)+D 3250 LET M=M+D 3260 LET D=0 3270 GOTO 3690 3280 IF P(C,2)=A THEN 3520 3290 IF P(C,2)=3-A THEN 3540 3300 PRINT "This property is UP FOR SALE" 3310 IF A=1 THEN 3380 3320 PRINT "COMPUTOR wishes to BUY it." 3330 LET P(C,2)=A 3340 LET O(A)=O(A)+P(C,3) 3350 LET E=C 3360 GOSUB 6510 3370 GOTO 3690 3380 PRINT W$(A*8-7,A*8);", you have $";M(1);", it costs $";P(C,3) 3390 IF P(C,16)=0 THEN 3470 3400 PRINT "* SET";P(C,16);" STATUS:" 3410 FOR E=1 TO 28 3420 IF P(E,16)<>P(C,16) THEN 3450 3430 IF E=C THEN 3450 ELSE LET Z=E 3440 PRINT "(";: GOSUB 8200 3445 LET Z=P(E,2)*8: PRINT ",";W$(Z-7,Z);") "; 3450 NEXT E 3460 PRINT 3470 PRINT "Do you wish to BUY it (Yes,No)"; 3480 INPUT (1,0)" ---=>",A$: LET A$=A$+" " 3490 IF A$(1,1)="Y" THEN 3330 3500 IF A$(1,1)="N" THEN 3690 3510 GOTO 3470 3520 PRINT W$(A*8-7,A*8);" already OWNS that PROPERTY." 3530 GOTO 3690 3540 IF J(3-A)>0 THEN 3690 3550 IF P(C,1)<>5 THEN 3580 3560 PRINT "This property is MORTGAGED" 3570 GOTO 3690 3580 IF C<27 THEN 3650 3590 LET E1=INT(6*RND(0)+1) 3600 LET E2=INT(6*RND(0)+1) 3610 IF R=10 THEN 3630 3620 LET R=P(C,15) 3630 LET R=(E1+E2)*R 3640 GOTO 3660 3650 LET R=P(C,15)*R 3660 LET Z=(3-A)*8: PRINT W$(Z-7,Z);" is charging rent of $";R 3670 LET O(A)=O(A)+R 3680 LET M(3-A)=M(3-A)+R 3690 LET R=1 3700 IF O(A)=0 THEN 3720 3710 PRINT W$(A*8-7,A*8);" owes $";O(A);" "; 3720 IF A=1 THEN 4530 3730 IF O(2)=0 THEN 4110 3740 GOSUB 5440 3750 IF O(2)=0 THEN 4110 3760 FOR E=1 TO 28 3770 GOSUB 5560 3780 IF O(2)=0 THEN 4110 3790 NEXT E 3800 LET F=F+1 3810 IF F=3 THEN 3880 3820 FOR E=1 TO 22 3830 LET G=P(E,13) 3840 GOSUB 5750 3850 IF O(2)=0 THEN 4110 3860 NEXT E 3870 GOTO 3740 3880 FOR E=1 TO 28 3890 GOSUB 5940 3900 IF O(2)=0 THEN 4110 3910 NEXT E 3920 PRINT W$(A*8-7,A*8);" QUITS "; 3925 PRINT W$((3-A)*8-7,(3-A)*8);" WINS by FORFEIT." 3930 PRINT 3940 LET Q9=10 3950 PRINT TAB(10);"DO YOU WANT A FINAL STATUS OF THE GAME"; 3960 INPUT " ---=>",Z$: LET Z$=Z$+" " 3970 IF Z$(1,1)="Y" THEN 5160 3980 IF Z$(1,1)="N" THEN 4010 ELSE 3990 3990 PRINT TAB(5);"ANSWER with YES or NO."; 4000 GOTO 3960 4010 PRINT TAB(10);"Do you want to play another GAME"; 4020 INPUT (1,0)" ---=>",Z$: LET Z$=Z$+" " 4030 LET Q9=10: RESTORE 4040 IF Z$(1,1)="Y" THEN 135 4050 IF Z$(1,1)="N" THEN 9000 ELSE 4060 4060 PRINT TAB(5);"ANSWER with YES or NO."; 4070 GOTO 9900 4090 LET A=2 4100 GOTO 3930 4110 LET F=0 4120 LET F=F+1 4130 IF F=3 THEN 5370 4140 FOR E=22 TO 1 STEP -1 4150 LET G=5-P(E,13) 4160 IF G*P(E,12)<=M(2) THEN 4200 4170 IF G=0 THEN 4090 4180 LET G=G-1 4190 GOTO 4160 4200 GOSUB 6140 4210 LET M(2)=M(2)-O(2) 4220 LET O(2)=0 4230 IF M(2)=0 THEN 5370 4240 NEXT E 4250 FOR E=28 TO 1 STEP -1 4260 LET G=P(E,4) 4270 IF G>M(2) THEN 4320 4280 GOSUB 6440 4290 LET M(2)=M(2)-O(2) 4300 LET O(2)=0 4310 IF M(2)=0 THEN 5370 4320 NEXT E 4330 GOTO 4120 4340 IF O(A)=0 THEN 4370 4350 PRINT W$(A*8-7,A*8);" YOU STILL OWE $";O(A) 4360 REM 4370 IF M(1)>7E3 OR M(2)>7E3 THEN 9000: REM ...Game over 4380 PRINT "?,S,B,R,M,U,D,F,A,C,Q,P,T"; 4390 INPUT (1,0)" # ---=>",A$: LET A$=A$+" " 4400 IF A$(1,1)="M" THEN 4550 4410 IF A$(1,1)="A" THEN 7930 4420 IF A$(1,1)="R" THEN 4750 4430 IF A$(1,1)="S" THEN 4840 4440 IF A$(1,1)="B" THEN 4980 4450 IF A$(1,1)="U" THEN 5060 4460 IF A$(1,1)="D" THEN 5150 4465 IF A$(1,1)="C" THEN 5360 4470 IF A$(1,1)="Q" THEN 3920 4475 IF A$(1,1)="P" THEN 8800 4480 IF A$(1,1)="T" THEN 7500 4485 IF A$(1,1)="?" THEN GOSUB 7760 4490 IF A$(1,1)="?" THEN 4390 4500 IF A$(1,1)="F" THEN GOSUB 7810 ELSE 4520 4510 GOTO 4690 4520 GOSUB 7600: GOTO 4370 4530 GOSUB 5440 4540 GOTO 4690 4550 PRINT "YOU OWE $";O(1) 4560 PRINT " YOU HAVE UNMORTGAGED:" 4570 PRINT "PROP. #","PROPERTY";TAB(45);"VALUE" 4580 FOR E=1 TO 28 4590 IF P(E,1)=5 THEN 4620 4600 IF P(E,2)=1 THEN LET Z=E ELSE 4620 4610 PRINT E,: GOSUB 8200: PRINT TAB(45);P(E,4) 4620 NEXT E 4630 PRINT "WHAT PROPERTY NUMBER"; 4640 INPUT (2,0)" ---=>",E 4650 IF E<=28 THEN 4680 ELSE 4660 4660 PRINT " THERE ARE NOT THAT MANY!!!" 4670 GOTO 4630 4680 GOSUB 5560 4690 IF H=0 THEN 4710 4700 PRINT " -=*=- NO CAN DO -=*=-" 4710 LET H=0 4720 IF O(A)=0 THEN 4370 4730 IF M(A)<>0 THEN 4530 4740 GOTO 4360 4750 PRINT " WHAT PROPERTY NUMBER"; 4760 INPUT (2,0)" ---=>",E 4770 PRINT " VALUE" 4780 IF E<1 OR E>28 THEN 4750 4790 PRINT "How many HOUSES"; 4800 INPUT (1,0)" ---=>",G 4810 IF G<1 OR G>10 THEN 4790 4820 GOSUB 5750 4830 GOTO 4690 4840 GOSUB 7810 4850 PRINT "PROP. #","PROPERTY";TAB(45);"VALUE" 4860 FOR E=1 TO 28 4870 IF P(E,2)<>1 THEN 4920 ELSE LET Z=E 4880 PRINT E,: GOSUB 8200: PRINT TAB(45); 4900 IF P(E,1)=4 THEN PRINT P(E,3) ELSE PRINT P(E,4) 4920 NEXT E 4930 PRINT "What property number?"; 4940 INPUT (2,0)" ---=>",E 4950 IF E<1 OR E>28 THEN 4930 4960 GOSUB 5940 4970 GOTO 4690 4980 PRINT "What property number?"; 4990 INPUT (2,0)" ---=>",E 5000 IF E<1 OR E>28 THEN 4980 5010 PRINT "How many houses? (5 houses = 1 HOTEL)"; 5020 INPUT (1,0)" ---=>",G 5030 IF G<1 OR G>10 THEN 5010 5040 GOSUB 6140 5050 GOTO 4690 5060 GOSUB 7810 5070 GOSUB 7850 5080 PRINT "What property number?"; 5090 INPUT (2,0)" ---=>",E 5100 IF E<28 OR E>1 THEN 5130 ELSE 5110 5110 PRINT "THERE ARE NOT THAT MANY PROPERTIES" 5120 GOTO 5080 5130 GOSUB 6440 5140 GOTO 4690 5150 PRINT 5160 PRINT TAB(40);"NO. of HOUSE MORT." 5180 PRINT "----PROPERTY---- # SET NAME "; 5190 PRINT " MORT HOUSES COST VALUE" 5200 FOR E=1 TO 28 5210 IF P(E,2)=3 THEN 5290 5230 LET C$=W$(P(E,2)*8-7,P(E,2)*8) 5240 LET D$=W$(P(E,1)*8-7,P(E,1)*8) 5250 LET E$=W$((P(E,14)+4)*8-7,(P(E,14)+4)*8) 5260 LET J=P(E,16): LET Z=E: GOSUB 8200 5270 PRINT TAB(18);%2I;E;TAB(21);%;J;TAB(25);C$;TAB(35);D$; 5280 PRINT TAB(32);P(E,13);TAB(49);%3I;P(E,12);TAB(57);P(E,4) 5290 NEXT E 5300 IF Q9=10 THEN PRINT 5310 IF Q9=10 THEN PRINT TAB(5);W$(1,8);" has $ ";M(1) 5320 IF Q9=10 THEN PRINT TAB(8);W$(9,16);" has $ ";M(2) 5330 IF Q9=10 THEN 8010 5340 PRINT 5350 GOTO 4690 5360 ON SGN(O(A))+2 GOTO 4090,5370,4340 5370 LET F=0: LET G=0: LET H=0 5380 IF D1=D2 THEN 5410 5390 LET A=3-A 5400 GOTO 1290 5410 PRINT 5420 PRINT "DOUBLES... ";W$(A*8-7,A*8);" will go again: "; 5430 GOTO 1370 5440 IF O(A)>M(A) THEN 5510 5450 IF O(A)=0 THEN 5490 5460 LET M(A)=M(A)-O(A) 5470 LET O(A)=0 5480 PRINT " and will pay CASH, leaving $";M(A) 5490 IF Q9=10 THEN 8080 5500 RETURN 5510 LET O(A)=O(A)-M(A) 5520 IF M(A)=0 THEN 5550 5530 LET M(A)=0 5540 PRINT " and will pay CASH." 5545 PRINT " **** YOU STILL OWE $";O(A) 5550 RETURN 5560 IF P(E,2)<>A THEN 5720 5570 IF P(E,1)=5 THEN 5720 5580 IF E>22 THEN 5630 5590 LET I=P(E,16) 5600 IF P(S(I,1),13)>0 THEN 5720 5610 IF P(S(I,2),13)>0 THEN 5720 5620 IF P(S(I,3),13)>0 THEN 5720 5630 PRINT " ";W$(A*8-7,A*8);" will MORTGAGE "; 5635 LET Z=E: GOSUB 8200: PRINT 5640 IF O(A)>P(E,4) THEN 5680 5650 LET M(A)=P(E,4)-O(A)+M(A) 5660 LET O(A)=0 5670 GOTO 5690 5680 LET O(A)=O(A)-P(E,4) 5690 LET P(E,1)=5 5700 GOSUB 6510 5710 RETURN 5720 LET H=1 5730 IF Q9=10 THEN 8080 5740 GOTO 5710 5750 IF P(E,2)<>A THEN 5720 5760 IF G>INT(G) THEN 5720 5770 IF G<1 THEN 5720 5780 IF G>P(E,13) THEN 5720 5790 LET I=G*P(E,12) 5800 PRINT W$(A*8-7,A*8);" will take ";G;" house(s) off of "; 5805 LET Z=E: GOSUB 8200: PRINT 5810 IF P(E,13)=5 THEN 5840 5820 LET H(A,1)=H(A,1)-G 5830 GOTO 5860 5840 LET H(A,2)=H(A,2)-1 5850 LET H(A,1)=5-G+H(A,1) 5860 IF O(A)>I THEN 5900 5870 LET M(A)=I-O(A)+M(A) 5880 LET O(A)=0 5890 GOTO 5910 5900 LET O(A)=O(A)-I 5910 LET P(E,13)=P(E,13)-G 5920 GOSUB 6510 5930 RETURN 5940 IF P(E,2)<>A THEN 5720 5950 IF E>22 THEN 6000 5960 LET I=P(E,16) 5970 IF P(S(I,1),13)>0 THEN 5720 5980 IF P(S(I,2),13)>0 THEN 5720 5990 IF P(S(I,3),13)>0 THEN 5720 6000 LET I=P(E,3) 6010 IF P(E,1)=4 THEN 6040 6020 LET I=I-P(E,4) 6030 PRINT W$(A*8-7,A*8);" will SELL "; 6035 LET Z=E: GOSUB 8200: PRINT 6040 IF O(A)>I THEN 6080 6050 LET M(A)=I-O(A)+M(A) 6060 LET O(A)=0 6070 GOTO 6090 6080 LET O(A)=O(A)-I 6090 LET P(E,1)=4 6100 LET P(E,2)=3 6110 GOSUB 6510 6120 LET P(E,15)=0 6130 RETURN 6140 IF P(E,2)<>A THEN 5720 6150 IF E>22 THEN 5720 6160 IF P(E,14)=0 THEN 5720 6170 IF G<1 THEN 5720 6180 IF G>INT(G) THEN 5720 6190 IF P(E,13)+G>5 THEN 5720 6200 LET X8=10 6210 FOR X9=1 TO 28 6220 IF P(X9,16)<>P(E,16) THEN 6250 6230 IF P(X9,13)>=X8 THEN 6250 6240 LET X8=P(X9,13) 6250 NEXT X9 6260 IF P(E,13)+G<=X8+1 THEN 6340 6270 IF A=2 THEN 6300 6280 PRINT " * NO CAN DO *" 6290 GOTO 6430 6300 LET G=X8+1-P(E,13) 6310 IF G>0 THEN 6340 6320 LET G=0 6330 GOTO 6350 6340 PRINT W$(A*8-7,A*8);" will put ";G;" house(s) on "; 6345 LET Z=E: GOSUB 8200: PRINT 6350 IF P(E,13)+G=5 THEN 6380 6360 LET H(A,1)=H(A,1)+G 6370 GOTO 6400 6380 LET H(A,2)=H(A,2)+1 6390 LET H(A,1)=H(A,1)-P(E,13) 6400 LET O(A)=O(A)+P(E,12)*G 6410 LET P(E,13)=P(E,13)+G 6420 GOSUB 6510 6430 RETURN 6440 IF P(E,2)<>A THEN 5720 6450 IF P(E,1)=4 THEN 5720 6460 PRINT " ";W$(A*8-7,A*8);" will unmortgage "; 6465 LET Z=E: GOSUB 8200: PRINT 6470 LET O(A)=O(A)+P(E,4) 6480 LET P(E,1)=4 6490 GOSUB 6510 6500 RETURN 6510 IF E>22 THEN 6740 6520 LET J=P(E,16) 6530 FOR K=1 TO 3 6540 IF P(S(J,K),1)=5 THEN 6620 6550 IF P(S(J,K),2)<>A THEN 6620 6560 NEXT K 6570 LET P(S(J,1),14)=1: LET P(S(J,2),14)=1 6575 LET P(S(J,3),14)=1 6580 FOR K=1 TO 3 6590 LET P(S(J,K),15)=P(S(J,K),P(S(J,K),13)+6) 6600 NEXT K 6610 GOTO 6730 6620 FOR K=1 TO 3 6630 LET P(S(J,K),14)=0 6640 IF P(S(J,K),2)<>A THEN 6700 6650 IF P(S(J,K),1)=5 THEN 6680 6660 LET P(S(J,K),15)=P(S(J,K),5) 6670 GOTO 6700 6680 LET P(S(J,K),15)=0 6700 NEXT K 6710 LET K=0: LET J=0 6720 IF Q9=10 THEN 8080 6730 RETURN 6740 IF E>26 THEN 6920 6750 LET J=0 6760 FOR K=1 TO 4 6770 IF P(K+22,2)<>A THEN 6800 6780 IF P(K+22,1)=5 THEN 6800 6790 LET J=J+1 6800 NEXT K 6810 FOR K=1 TO 4 6820 IF P(K+22,2)<>A THEN 6890 6830 IF P(K+22,1)=5 THEN 6880 6840 LET P(K+22,15)=P(K+22,J+4) 6850 IF J<4 THEN 6890 6860 LET P(K+22,14)=1 6870 GOTO 6900 6880 LET P(K+22,15)=0 6890 LET P(K+22,14)=0 6900 NEXT K 6910 GOTO 6710 6920 LET J=0 6930 FOR K=1 TO 2 6940 IF P(K+26,2)<>A THEN 6970 6950 IF P(K+26,1)=5 THEN 6970 6960 LET J=J+1 6970 NEXT K 6980 FOR K=1 TO 2 6990 IF P(K+26,2)<>A THEN 7060 7000 IF P(K+26,1)=5 THEN 7050 7010 LET P(K+26,15)=P(K+26,J+4) 7020 IF J<2 THEN 7060 7030 LET P(K+26,14)=1 7040 GOTO 7070 7050 LET P(K+26,15)=0 7060 LET P(K+26,14)=0 7070 NEXT K 7080 GOTO 6710 7090 REM 7100 REM .............X(40) 'SQUARES' 7110 REM 7120 DATA 1,29,2,31,23,3,30,4,5,32,6,27,7,8,24,9,29,10,11,33 7130 DATA 12,30,13,14,25,15,16,28,17,34,18,19,29,20,26,30,21,35,22,36 7140 REM 7150 REM ..........P(28,16) PROPERTY INFORMATION 7160 REM 7170 DATA 4,3,60,30,2,4,10,30,90,160,250,50,0,0,0,1 7180 DATA 4,3,60,30,4,8,20,60,180,320,450,50,0,0,0,1 7190 DATA 4,3,100,50,6,12,30,90,270,400,550,50,0,0,0,2 7200 DATA 4,3,100,50,6,12,30,90,270,400,550,50,0,0,0,2 7210 DATA 4,3,120,60,8,16,40,100,300,450,600,50,0,0,0,2 7220 DATA 4,3,140,70,10,20,50,150,450,625,750,100,0,0,0,3 7230 DATA 4,3,140,70,10,20,50,150,450,625,750,100,0,0,0,3 7240 DATA 4,3,160,80,12,24,60,180,500,700,900,100,0,0,0,3 7250 DATA 4,3,180,90,14,28,70,200,550,750,950,100,0,0,0,4 7260 DATA 4,3,180,90,14,28,70,200,550,750,950,100,0,0,0,4 7270 DATA 4,3,200,100,16,32,80,220,600,800,1000,100,0,0,0,4 7280 DATA 4,3,220,110,18,36,90,250,700,875,1050,150,0,0,0,5 7290 DATA 4,3,220,110,18,36,90,250,700,875,1050,150,0,0,0,5 7300 DATA 4,3,240,120,20,40,100,300,950,925,1100,150,0,0,0,5 7310 DATA 4,3,260,130,22,44,110,330,800,975,1150,150,0,0,0,6 7320 DATA 4,3,260,130,22,44,110,330,800,975,1150,150,0,0,0,6 7330 DATA 4,3,280,140,24,48,120,360,850,1025,1200,150,0,0,0,6 7340 DATA 4,3,300,150,26,52,130,390,900,1100,1275,200,0,0,0,7 7350 DATA 4,3,300,150,26,52,130,390,900,1100,1275,200,0,0,0,7 7360 DATA 4,3,320,160,28,56,150,450,1000,1200,1400,200,0,0,0,7 7370 DATA 4,3,350,175,35,70,170,500,1100,1300,1500,200,0,0,0,8 7380 DATA 4,3,400,200,50,100,200,600,1400,1700,2000,200,0,0,0,8 7390 DATA 4,3,200,100,25,50,100,200,0,0,0,0,0,0,0,0 7400 DATA 4,3,200,100,25,50,100,200,0,0,0,0,0,0,0,0 7410 DATA 4,3,200,100,25,50,100,200,0,0,0,0,0,0,0,0 7420 DATA 4,3,200,100,25,50,100,200,0,0,0,0,0,0,0,0 7430 DATA 4,3,150,75,4,10,0,0,0,0,0,0,0,0,0,0 7440 DATA 4,3,150,75,4,10,0,0,0,0,0,0,0,0,0,0 7450 REM 7460 REM ..........S(8,3) PROPERTY GROUPS 7470 REM 7480 DATA 1,2,1,3,4,5,6,7 7490 DATA 8,9,10,11,12,13,14,15 7495 DATA 16,17,18,19,20,21,22,21 7500 FOR E=1 TO 8: LET T(E)=0: NEXT E 7505 PRINT 7510 FOR E=1 TO 28 7515 IF P(E,2)>2 THEN 7550 7520 IF P(E,2)=1 THEN LET K=1 ELSE LET K=5 7525 IF P(E,1)=5 THEN LET T(K+1)=T(K+1)+P(E,4): GOTO 7550 7530 LET T(K)=T(K)+P(E,3) 7535 LET T(K+3)=T(K+3)+P(E,15) 7540 IF P(E,13)>0 THEN LET T(K+2)=T(K+2)+P(E,12)*P(E,13) 7550 NEXT E 7560 PRINT " TOTALS: Prop. value Mortgages Houses"; 7565 PRINT " Rents Net value" 7570 PRINT W$(1,8);TAB(12);%$C7I;T(1);TAB(22);T(2);TAB(32); 7575 PRINT %$C7I;T(3);TAB(42);T(4);TAB(52);T(1)+T(2)+T(3) 7580 PRINT W$(9,16);TAB(12);%$C7I;T(5);TAB(22);T(6);TAB(32); 7585 PRINT %$C7I;T(7);TAB(42);T(8);TAB(52);T(5)+T(6)+T(7) 7590 GOTO 4380 7600 PRINT "S (Sell) = Sell a property to pay a debt." 7610 PRINT "B (Build) = Build a house on a property." 7620 PRINT "R (Remove) = Remove houses to pay a debt." 7630 PRINT "M (Mortgage) = Mortgage a property to pay debts." 7640 PRINT "U (Unmortgage) = Un-mortgage a property." 7650 PRINT "D (Display) = Display owned properties." 7660 PRINT "F (Funds) = Show each player's $money." 7670 PRINT "A (Available) = Display unbought properties." 7680 PRINT "C (Continue) = Continue with the game." 7690 PRINT "Q (Quit) = Quit the game." 7700 PRINT "P (Print) = Print picture of board." 7710 PRINT "T (Totals) = Total financial holdings." 7720 PRINT "? = *DISPLAY THE KEYWORDS*";J$ 7750 RETURN 7760 PRINT "Sell,Build,Remove,Mort,Unmort,Disp,Funds,Avail" 7765 PRINT "Cont,Quit,Print,Total"; 7770 RETURN 7780 REM 7790 REM 7800 REM 7810 PRINT "You have $";M(1) 7820 PRINT "COMPUTOR has $";M(2) 7830 IF Q9=10 THEN 8080 7840 RETURN 7850 PRINT "You have MORTAGAGED:" 7860 PRINT "PROPERTY #","PROPERTY";TAB(45);"COST" 7870 FOR E=1 TO 28 7880 IF P(E,1)=4 THEN 7910 7890 IF P(E,2)=1 THEN LET Z=E ELSE 7910 7900 PRINT E,: GOSUB 8200: PRINT TAB(45);P(E,4) 7910 NEXT E 7920 RETURN 7930 PRINT "PROPERTY #","PROPERTY";TAB(45);"SET" 7940 FOR E=1 TO 28 7950 IF P(E,2)<>3 THEN 7970 ELSE LET Z=E 7960 PRINT E,: GOSUB 8200: PRINT TAB(45);P(E,16) 7970 NEXT E 7980 IF O(A)=0 THEN 4370 7990 IF Q9=10 THEN 8080 8000 GOTO 4360 8010 PRINT 8020 PRINT TAB(10);"IS THERE ANYTHING ELSE" 8030 INPUT (1,0)" ---=>",Z$: LET Z$=Z$+" " 8040 IF Z$(1,1)="Y" THEN 8080 8050 IF Z$(1,1)="N" THEN 4010 ELSE 8060 8060 PRINT "ANSWER with YES or NO." 8070 GOTO 8030 8080 PRINT "D,A,M OR NO"; 8090 INPUT (1,0)" ---=>",Z$: LET Z$=Z$+" " 8100 IF Z$(1,1)="F" THEN 7810 8110 IF Z$(1,1)="A" THEN 7930 8120 IF Z$(1,1)="M" THEN 4550 8130 IF Z$(1,1)="D" THEN 5150 8140 IF Z$(1,1)="N" THEN 4010 8150 PRINT "ANSWER with YES or NO or C";J$ 8160 GOTO 8090 8200 REM ....Property printout..... 8210 ON INT(Z/10)+1 GOTO 8220,8230,8240,8250 8220 ON Z GOTO 8300,8310,8320,8330,8340,8350,8360,8370,8380 8230 ON Z-9 GOTO 8390,8400,8410,8420,8430,8440,8450,8460,8470,8480 8240 ON Z-19 GOTO 8490,8500,8510,8520,8530,8540,8550,8560,8570,8580 8250 ON Z-29 GOTO 8590,8600,8610,8620,8630,8640,8650 8300 PRINT "Mediterranean Ave.";: RETURN 8310 PRINT "Baltic Ave.";: RETURN 8320 PRINT "Orential Ave.";: RETURN 8330 PRINT "Vermont Ave.";: RETURN 8340 PRINT "Connecticut Ave.";: RETURN 8350 PRINT "St. Charles Place.";: RETURN 8360 PRINT "States Ave.";: RETURN 8370 PRINT "Virginia Ave.";: RETURN 8380 PRINT "St. James Place.";: RETURN 8390 PRINT "Tennessee Ave.";: RETURN 8400 PRINT "New York Ave.";: RETURN 8410 PRINT "Kentucky Ave.";: RETURN 8420 PRINT "Indiana Ave.";: RETURN 8430 PRINT "Illinois Ave.";: RETURN 8440 PRINT "Atlantic Ave.";: RETURN 8450 PRINT "Ventnor Ave.";: RETURN 8460 PRINT "Marvin Gardens";: RETURN 8470 PRINT "Pacific Ave.";: RETURN 8480 PRINT "No. Carolina Ave.";: RETURN 8490 PRINT "Pennsylvania Ave.";: RETURN 8500 PRINT "Park Place.";: RETURN 8510 PRINT "Boardwalk.";: RETURN 8520 PRINT "Reading Railroad.";: RETURN 8530 PRINT "Pennsylvania R. R.";: RETURN 8540 PRINT "B and O railroad.";: RETURN 8550 PRINT "Short line R. R.";: RETURN 8560 PRINT "Electric Company.";: RETURN 8570 PRINT "Water works.";: RETURN 8580 PRINT "Community chest.";: RETURN 8590 PRINT "CHANCE ";: RETURN 8600 PRINT "INCOME TAX ";: RETURN 8610 PRINT "Just Visiting ";: RETURN 8620 PRINT "FREE PARKING ";: RETURN 8630 PRINT "GO TO JAIL ";: RETURN 8640 PRINT "LUXURY TAX ";: RETURN 8650 PRINT " *GO* ";: RETURN 8800 PRINT K$: REM .....PRINT display of the board.... 8810 PRINT " ........................................................" 8820 PRINT " | GO |Med.|Comm|Balt| TAX|Read|Orie|CHAN|Verm|Conn|JAIL|" 8830 PRINT " .. Boar|";TAB(53);"|St.C .." 8840 PRINT " .. LUX |";TAB(53);"|Elec .." 8850 PRINT " .. Park|";TAB(53);"|Stat .." 8860 PRINT " .. CHAN|";TAB(53);"|Virg .." 8870 PRINT " .. S.RR|";TAB(53);"|P.RR .." 8880 PRINT " .. Penn|";TAB(53);"|St.J .." 8890 PRINT " .. COMM|";TAB(53);"|COMM .." 8900 PRINT " .. N.Ca|";TAB(53);"|Tenn .." 8910 PRINT " .. Paci|";TAB(53);"|N.Yk .." 8920 PRINT " |Go J|MarG|Watr|Vent|Atla|B.RR|Illi|Indi|CHAN|Kent|PARK|" 8930 PRINT " ........................................................" 8940 IF B(2)>0 THEN CURSOR Y(B(2)),Z(B(2))+1 ELSE CURSOR 1,5 8945 PRINT CHR(5); 8950 IF B(1)>0 THEN CURSOR Y(B(1)),Z(B(1)) ELSE CURSOR 1,4 8955 PRINT CHR(7); 8960 CURSOR 6,15: PRINT W$(1,8);", you are the ";CHR(7); 8970 CURSOR 8,15: PRINT "COMPUTOR is the ";CHR(5);" symbol."; 8980 CURSOR 15,1 8990 GOTO 4380 9000 PRINT : REM ...Look for $7,000 winner 9010 PRINT TAB(5);W$(1,8);" has $ ";M(1) 9020 PRINT TAB(8);W$(9,16);" has $ ";M(2) 9030 PRINT 9040 IF M(1)>7E3 THEN PRINT W$(1,8);" is declared the WINNER!" 9050 IF M(2)>7E3 THEN PRINT W$(9,16);" is declared the WINNER!" 9900 END