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))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)"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 A2*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