mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
1051 lines
26 KiB
QBasic
1051 lines
26 KiB
QBasic
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 |