mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1051 lines
26 KiB
1051 lines
26 KiB
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 LET 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 LET 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 THEN1070
|
|
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 IFLEFT$(X$,1)="N"THEN1290
|
|
1230 IFLEFT$(X$,1)="Y"THEN1260
|
|
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 IFLEFT$(A$,1)="Y"THEN1480
|
|
1450 IFLEFT$(A$,1)="N"THEN2770
|
|
1460 PRINT "TYPE 'YES' OR 'NO'";
|
|
1470 GOTO 1290
|
|
1480 LET 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 LET 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 LET 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 IFLEFT$(A$,1)="Y" THEN 1920
|
|
1890 IFLEFT$(A$,1)="N"THEN2760
|
|
1900 PRINT"YES OR NO";
|
|
1910 GOTO 1870
|
|
1920 LET 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 LET 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 LET 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 GOTO3000
|
|
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 GOTO2950
|
|
2930 A8=-1
|
|
2940 GOTO 3000
|
|
2950 IFLEFT$(A$,1)="N"THEN3700
|
|
2960 IFLEFT$(A$,1)="Y"THEN3000
|
|
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 THEN3650
|
|
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 FORJ9=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$=" " THEN3470
|
|
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$=" " THEN3610
|
|
3560 K(0)=LEN(T$):FORXE=1TOK(0):K(XE)=ASC(MID$(T$,XE,1)):NEXTXE
|
|
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=1TON
|
|
3830 LET T(Y3)= T(Y3)-50
|
|
3840 NEXT Y3
|
|
3850 T(B)=T(B)+N*50
|
|
3860 GOTO 4090
|
|
3870 PRINT "GO TO READING"
|
|
3880 LET P(B)=5
|
|
3890 LET 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 DATAST. CHAS.,13,10,140,ELECTRIC WORKS,10,1,150,STATES
|
|
4140 DATA13,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 IFU8=0THEN4340
|
|
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 LET 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 IFLEFT$(Z$,1)="N"THEN4870
|
|
4840 IFLEFT$(Z$,1)="Y"THEN4900
|
|
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 THEN5120
|
|
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 GOTO5250
|
|
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 IFLEFT$(H$,1)="N"THEN4870
|
|
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 IFLEFT$(Z$,3)<>"NOT"THEN5950
|
|
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)>B3THEN 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 IFLEFT$(Z$,3)="NOT"THEN6590
|
|
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" THEN6110
|
|
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 GOTO7400
|
|
7440 IF Z$="NO" THEN 6960
|
|
7450 GOTO 7360
|
|
7460 IF S(E8)<9THEN 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 IFA$="NO" THEN8290
|
|
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 IFA(E9)=1THEN8360
|
|
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 LET 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 LET R(O9)= R(O9)/2
|
|
8170 O(O9)=0
|
|
8180 NEXT O9
|
|
8190 PRINT "NO LONGER A MONOPOLY THERE"
|
|
8200 LET 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) THEN8390
|
|
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 IFLEFT$(Z$,1)="Y"THEN9240
|
|
9130 IFLEFT$(Z$,1)="N"THEN9190
|
|
9140 IFLEFT$(Z$,1)="L"THEN9200
|
|
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 GOTO9920
|
|
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 FORO9= 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
|
|
10420 IF N$(9)<>"YOU" THEN 10460
|
|
10430 N$(O9)="COM
|