5
10 MODE7
11 X=129:GOSUB5000:X=135:GOSUB5000:X=129:GOSUB5000:FORX=11TO12:PRINTTAB(4,X)CHR$(141);CHR$(132);"FROM OLD KENT ROAD TO MAYFAIR":NEXT:GOSUB1990
12 GOSUB1140:X=RND(TIME):X=RND(-X):CLS
20 GOSUB8000
25 PRINT"Do you have a game saved?";:IFFNyn="Y"THENGOSUB10800:MIN=0:GOTO95
30 GOSUB8060
35 PRINT"Do you want to play the time limit"'"version?";:IFFNyn="N"THEN MIN=0:GOTO95
40 INPUT"How many minutes do you want the game"'"to run? "MIN:TIME=0
50 PRINT"Cards being dealt":GOSUB1990:FORa=1TO n%:FORb=1TO2:c=RND(40):IFp%(c,2)<>7THEN b=b-1:GOTO60
55 p%(c,2)=a:m%(a)=m%(a)-p%(c,1)
60 NEXTb:NEXTa
95 ON ERROR PROCerr:GOTO 105
96 CLS:VDU23;8202;0;0;0:D$(1)="H":D$(2)="HH":D$(3)="HHH":D$(4)="HHHH"
100 a=1:GOSUB900:IFMIN>0ANDTIME DIV 6000>MIN THEN 12000
101
102 d4=0:IFN$(a)=""THEN1505
105 IFa=c%THENGOSUB2000:GOTO1500
125 x=j%(a):IFx=0THEN200
130 CLS:GOSUB5010:x=x+1:IFx=4THENx=0:PRINT;N$(a)" - you must now leave jail":GOTO140
135 PRINT" "N$(a)" in jail":PRINTC$;L$:PRINT" Do you wish to remain?";:IFFNyn="Y"THEN175
140 IFg%(a)>0THENPRINT" Do you wish to use your card?";:IFFNyn="Y"THEN g%(a)=g%(a)-1:x=0:GOTO175
145 PRINT" "T$;"50":m%(a)=m%(a)-50:x=0:fr=1:PRINTTy$:GOSUB1990
175 j%(a)=x
200 x=d%(a):GOSUB295
201 GOSUB550:PRINT" T/Throw dice";TAB(21);"Z/Save game"
209 IFp%(x,10)>0THENGOSUB6700
210 *FX15,1
211 A$=CHR$(GETAND&DF):IFA$="T"ANDm%(a)>=0THEN1100
215 IFA$="Q"THENGOSUB7000:GOTO1505
225 GOSUB560
235 GOTO200
249 o=1:c=20
250 CLS:PRINT"NO:PROPERTY"TAB(31)"OWNER":FORb=o TO c:IFp%(b,1)=0THEN254ELSEPRINT;b;CHR$(p%(b,12));P$(b);
251 IFp%(b,11)=1THENPRINTTAB(27)"(M)";
252 PRINTTAB(30)N$(p%(b,2))
254 NEXTb:GOSUB1140:IFo=21THENRETURN
255 o=21:c=40:GOTO250
270 d=r%:r%=0:CLS:PRINTTAB(10)"Deed details":PRINTC$;L$:GOSUB5050:x=v:IFp%(x,1)=0THENPRINT" Non-purchaseable property":GOTO275
271 CLS:PRINTTAB(10)CHR$(p%(x,12));P$(x):IFx=6ORx=16ORx=26ORx=36THENGOSUB360:GOTO275
272 IFx=13ORx=29THENGOSUB340:GOTO275
273 GOSUB312:GOTO275
275 r%=d:T%=p%(x,10):IFT%>0THENGOSUB6702
278 GOTO820
285 o=0:v=d%(a):z=(v-1)DIV5*5+2:FORb=z TOz+3:IFp%(v,2)=p%(b,2)ANDp%(b,8)>0THENo=o+1
287 NEXT:IFz<6ORz>36THENo=o+1
290 RETURN
295 CLS:FORT=1TO2:PRINTCHR$(141);a" "N$(a);TAB(16)CHR$(p%(x,12));P$(x):NEXT:PRINTTAB(15)"CASH `";m%(a):PRINTTAB(0)CHR$(p%(x,12)+16);L$:RETURN
300 x=d%(a):r%=0:CLS:PRINTTAB(10)CHR$(p%(x,12));P$(x):IFx=13ORx=29THENGOSUB335:GOTO500
301 IFx=6ORx=16ORx=26ORx=36THENGOSUB355:GOTO500
302 IFx=3ORx=18ORx=34THEN370ELSEIFx=21THEN440
303 IFx=8ORx=23ORx=37THEN390
304 IFx=1ORx=11THENPRINTCHR$(151);L$:GOTO500
305 IFx=5ORx=39THEN420
306 IFx=31THENPRINT:GOTO374
307 IFp%(x,2)=7ORp%(x,11)=1ORa=p%(x,2)THENr%=0:GOTO310
308 hv=a:a=p%(d%(a),2):v=x:GOSUB620:a=hv:IFy=3THEN r%=2*p%(x,3)ELSE r%=p%(x,3)
309 IFp%(x,10)>0THENz=p%(x,10)+3:r%=p%(x,z)
310 GOSUB312:GOTO500
312 PRINT" PRICE `";p%(x,1):PRINTCHR$(p%(x,12)+16);L$:PRINT" Rent `";p%(x,3)TAB(21)"Payable `";r%
314 PRINT" Price per house: `";p%(x,9):vp%=VPOS:FORz=0TO 3:PRINTTAB(20*(z AND1),vp%+z DIV2);" ";z+1;" house";CHR$(ASC"s"AND(z<>0));" `";p%(x,z+4):NEXT:PRINT" Hotel `";p%(x,8)
316 PRINT" Number of houses:";:IFp%(x,10)=5THENPRINTCHR$(129);"HOTEL"ELSEPRINTCHR$(130);p%(x,10)
320 GOTO480
335 IFp%(x,11)=1ORp%(x,2)=7ORp%(x,2)=a THENr%=0:GOTO340
336 hv=a:a=p%(d%(a),2):GOSUB2650:a=hv:IFk=2THEN r%=d3*10ELSE r%=d3*4
340 PRINT," PRICE `";p%(x,1):PRINTCHR$(151);L$:PRINT" Rent:"'" If one utility owned: 4 times dice"'" If two utilities owned: 10 times dice"'" Rent: `";d3,T$;r%:GOTO480
355 IFp%(x,2)=7ORp%(x,11)=1ORa=p%(x,2)THENr%=0:GOTO360
356 o=0:FORz=6TO36STEP10:IFp%(z,2)=p%(x,2)THENo=o+1
357 NEXT:r%=p%(x,3+o)
360 PRINT" Price: `";p%(x,1)'C$;L$'" Rent":FORz=4TO7:PRINT" If ";z-3;" station";CHR$(ASC"s" AND (z<>4));" owned `"p%(x,z):NEXT:PRINT" Payable `";r%:GOTO480
368 GOSUB1990:IFa=c% THEN RETURN ELSE 1505
369 j%(a)=1:d%(a)=11:GOTO368
370 PRINT:PRINTC$;L$:b=RND(17):ONb GOTO371,372,373,374,375,376,377,378,379,380,381,382,332,384,385,387,389
371 PRINT" Pay hospital `100":r%=100:GOTO455
372 PRINT" Pay doctor's fee `50":r%=50:GOTO455
373 PRINT" Insurance premium,pay `50":r%=50:GOTO455
374 CLS:FORT=1TO2:PRINTTAB(12)CHR$(141);CHR$(129);"GO TO JAIL":NEXT:d4=0:PRINT:GOSUB1990:GOSUB5010:GOTO369
375 PRINT" Receive interest on 7% preference"'" shares `25":b=25:GOTO450
376 PRINT" You inherit `100":b=100:GOTO450
377 PRINT" From sale of stock you get `50":b=50:GOTO450
378 PRINT" Bank error in your favour collect `200":b=200:GOTO450
379 PRINT" Get out of jail free":g%(a)=g%(a)+1:GOTO455
380 PRINT" Annuity matures collect `100":b=100:GOTO450
381 PRINT" Income tax refund collect `20":b=20:GOTO450
382 PRINT" You have won 2nd prize in a beauty"'" contest. Collect `10":b=10:GOTO450
383 PRINT" Advance to GO":c=1:b=200:GOTO445
384 PRINT" Go back to OLD KENT ROAD":c=2:b=0:GOTO445
385 PRINT" Pay a `10 fine (F) or take a chance (C)":INPUT"] "A$:IFm%(a)>9ANDA$="F"THENPRINTTy$:b=10:GOTO450
386 GOTO390
387 PRINT" It is your birthday collect `10 from each player":FORb=1TOn%:IFN$(b)<>""AND b<>a THEN m%(b)=m%(b)-10:m%(a)=m%(a)+10
388 NEXT:GOTO455
389 PRINT" Iain Skelly wants royalties - 10% of"'" your capital":r%=m%(a)DIV10:GOTO455
390 PRINT:PRINTC$;L$:b=RND(17):ONb GOTO374,392,407,380,395,396,397,374,399,409,384,392,403,404,405,406,411
392 PRINT" Make general repairs on all your houses `25 per house, `125 per hotel":FORb=1TO40:IFp%(b,2)=a ANDp%(b,10)>0THENr%=r%+p%(b,10)*25
393 NEXT:PRINTT$;r%:GOTO455
395 PRINT" You have won a crossword competition"'" collect `100":b=100:GOTO450
396 PRINT" Your building and loan matures - `150":b=150:GOTO450
397 PRINT" Advance to "P$(25):IFd%(a)=37THENb=200ELSEb=0
398 c=25:GOTO445
399 PRINT" Take a trip to "P$(16):IFd%(a)>8THENb=200ELSEb=0
400 c=16:GOTO445
403 PRINT" Advance to "P$(40):c=40:b=0:GOTO445
404 PRINT" Bank pays you dividend of `50":b=50:GOTO450
405 PRINT" Drunk in charge fine `50":r%=50:GOTO455
406 PRINT" Speeding fine `15":r%=15:GOTO455
407 PRINT" Pay school fees `150":r%=150:GOTO455
409 PRINT" Advance to "P$(12):IFd%(a)>11THENb=200ELSEb=0
410 c=12:GOTO445
411 PRINT" Go back three spaces":c=d%(a)-3:b=0:IFc<1THEN c=39
412 GOTO445
420 PRINT:PRINTC$;L$:IFd%(a)=5THENr%=200ELSEr%=100
421 PRINT:FORT=1TO2:PRINTTAB(10)CHR$(141);CHR$(129);T$;r%:NEXT:PRINTC$;L$:GOTO500
440 FORT=0TO35:PRINTTAB(T+1,4);:VDU144+a,252,252:PRINTTAB(T,5);:VDU144+a,239,175,175,191:FORj=1TO20:NEXTj:NEXT:GOTO500
445 d%(a)=c:m%(a)=m%(a)+b:GOSUB1990:GOTO300
450 m%(a)=m%(a)+b
455 PRINT:PRINTCHR$(131);CHR$(157):GOTO500
480 PRINT" Owner",N$(p%(x,2)):PRINT" "Mo$;" value `"p%(x,1)/2;:IFp%(x,11)=1THENPRINTTAB(20)CHR$(129);"PROPERTY MORTGAGED";
485 PRINT:PRINTCHR$(p%(x,12)+16);L$:RETURN
500 IFa=c%THENGOSUB1990:RETURN
502 PRINT" ";a" "N$(a)TAB(21)"CASH `";m%(a):GOSUB550:PRINT" O/Pay debt"TAB(21)"L/Buy deeds":PRINT" N/Next player"TAB(21)"Z/Save game":PRINTTAB(1,23)"Debt `";r%;
510 A$=CHR$(GETAND&DF):IFA$="Q"THENGOSUB7500:GOTO1505
515 IFA$="N"THEN1500
516 IFA$="L"ANDp%(d%(a),2)=7THENGOSUB800:GOTO300
520 IFA$="O"ANDr%>0THENGOSUB1600:GOTO510
525 GOSUB560:CLS:GOTO500
550 PRINT" M/"Mo$TAB(21)"S/Sell "H$:PRINT" D/Deed details"TAB(21)"Y/Your position":PRINT" P/Player's positions"
555 PRINT" E/"E$TAB(21)"Q/"Q$:PRINT" C/"Co$TAB(21)"W/"Td$" cash":PRINT" X/"Td$" deeds"TAB(21)"B/Buy "H$:RETURN
560 IFA$="M"THENGOSUB1300
562 IFA$="S"THENGOSUB1750
564 IFA$="B"THENGOSUB1700
566 IFA$="D"THENGOSUB270
568 IFA$="Y"THENGOSUB1000
569 IFA$="Z"THENGOTO10400
570 IFA$="P"THENGOSUB1050
572 IFA$="E"THENGOSUB249
574 IFA$="C"THENGOSUB4500
576 IFA$="W"THENGOSUB1800
578 IFA$="X"THENGOSUB1830
580 RETURN
600 FORv=2TO37STEP5:o=0:FORb=v TO v+3:IFp%(b,2)=a AND p%(b,11)=0 AND p%(b,8)>0THEN o=o+1
604 NEXTb
605 IFv=2OR v=37THEN o=o+1
610 FOR c=v TO v+3:IFp%(c,9)>0AND o=3 THEN p%(c,0)=p%(c,2)ELSE p%(c,0)=0
611 NEXTc
615 NEXTv:RETURN
620 y=0:k=0:o=0:w=0:z=(v-1)DIV5*5+2:FORB=z TO z+3:k=k+p%(B,10):IFp%(B,8)=0THEN623 ELSE o=o+1
621 IFp%(B,2)=a THEN w=w+1:y=y+1
623 NEXT
624 IFv<5 OR v>37THEN y=y+1
625 RETURN
800 CLS:d=d%(a):FORT=1TO2:VDU129,157,135,141:PRINTTAB(4)"Property purchase section":NEXT:PRINTTAB(0)C$;L$:FORT=1TO2:VDU141,p%(d,12):PRINTTAB(10)P$(d):NEXT
805 IFm%(a)-p%(d,1)<0THENPRINTIc$:GOTO820
807 PRINT" Account debited `";p%(d,1):PRINT" Deeds registered in "N$(a)"'s name"
810 m%(a)=m%(a)-p%(d,1):PRINTTy$:p%(d,2)=a:GOTO820
819 PRINT" "I$
820 GOSUB1140:RETURN
900 N=0:FORb=1TOn%:IFN$(b)<>""THEN N=N+1
910 NEXT:IFN=1THENCLS:GOTO12005
915 RETURN
920 PRINT" BEEB buys"CHR$(p%(h,12));P$(h):p%(h,2)=a:s=s-p%(h,1):RETURN
1000 CLS:PRINTTAB(1)N$(a)TAB(17)H$TAB(31)"OWNER":PRINTC$;L$:x=d%(a)
1010 FORb=1TO21:IFx>40THENx=x-40
1015 d=p%(x,10):PRINTTAB(1)CHR$(p%(x,12));P$(x);:IFd>0ANDd<5THENPRINTTAB(19)CHR$(130);D$(d);
1016 IFd=5THENPRINTTAB(19)CHR$(129);"HOTEL";
1017 IFp%(x,2)>0THENPRINTTAB(28)CHR$135;N$(p%(x,2));
1020 x=x+1:PRINT:NEXT
1025 x=0:b=2:PRINTTAB(x,b)V$(a)
1026 IFA$="T"ORa=c%THENFORb=2TOd3+1:PRINTTAB(x,b)V$(a):t%=TIME+33:REPEATUNTILTIME>t%:PRINTTAB(x,b)" ":SOUND1,-15,5,4:NEXT:PRINTTAB(x,b)V$(a):d%(a)=d%(a)+d3:IFd%(a)>40THENd%(a)=d%(a)-40:m%(a)=m%(a)+200
1027 IFa=c%THENGOSUB1990:RETURN
1030 GOTO820
1050 d3=c%:c%=0:h=a:FORa=1TOn%:IFa=h THEN1060
1052 IFN$(a)=""THEN1060
1055 GOSUB1000
1060 NEXT:a=h:c%=d3:RETURN
1100 CLS:FORb=1TO40:d1=RND(6):d2=RND(6):FORT=1TO2:PRINTTAB(11,12+T);CHR$(141);CHR$(128+d1);d1,CHR$(128+d2);d2:NEXTT:NEXTb:d3=d1+d2
1120 GOSUB1990:IF d4=2 AND d1=d2 THEN d1=0:GOTO374
1121 IF j%(a)>0AND d1=d2 THEN j%(a)=0
1122 IFj%(a)>0THEN300
1123 IF fr=1 AND d1=d2 THEN m%(a)=m%(a)+50:PRINT"`50 refund":GOSUB1990
1125 fr=0:GOSUB1000:GOTO300
1140 VDU31,1,24,157,132:PRINT"PRESS SPACE BAR TO CONTINUE";:REPEAT:A$=GET$:UNTILA$=" ":RETURN
1300 CLS:PRINTTAB(14)Mo$" Section":PRINTC$;L$:PRINT" 1/REDEEM "Mo$,"2/TAKE "Mo$:INPUT" ] "d
1310 GOSUB5050:IFp%(v,2)<>a THEN819
1315 IFd=1THEN1350
1320 IFp%(v,11)<>0THEN819
1325 IFp%(v,8)>0THENGOSUB620:IFk>0THEN819
1330 p%(v,11)=1:b=p%(v,1)DIV2:m%(a)=m%(a)+b:PRINT;CHR$(p%(v,12));P$(v)" "Mo$" Value `";b:GOTO820
1350 IFp%(v,11)<>1THEN819
1360 b=p%(v,1)DIV2+p%(v,1)DIV20:PRINT" Cost to reedem ";Mo$;" `";b
1365 IFm%(a)-b<0THEN819
1370 m%(a)=m%(a)-b:p%(v,11)=0:PRINTTy$:GOSUB600:GOTO820
1500 d=d%(a):IFp%(d,2)=7THENGOSUB1510
1501 IFr%>0THENPRINTTAB(1,23)I$;:FORb=1TO1500:NEXT:CLS:GOTO500
1503 IF d1=d2 THEN d4=d4+1:GOTO105
1505 a=(a+1)MOD (n%+1):IFa=0 GOTO100 ELSE GOTO102
1510 GOSUB600:s=m%(c%):v=d%(a):t=p%(v,1)+RND(100):hv=a:a=c%:GOSUB620:a=hv:GOSUB1560
1511 hv=a:a=c%:IFv=6OR v=16OR v=26OR v=36THENGOSUB2670:w=k
1512 IFv=13OR v=29THENGOSUB2650:w=k
1513 a=hv
1515 IFo<3AND w>1AND s>p%(v,1)THEN t=s DIV100*(80+RND(10))
1520 IF o>2AND w>1OR o<3 AND w=1THEN t=s DIV100*(55+RND(15))
1525 IFt>s-6THEN t=s-6
1527 IFt=0AND s>6THEN t=s-6
1530 CLS:PRINT;CHR$(p%(v,12));P$(v)" is up for auction":GOSUB5060
1540 INPUT" Enter player number and highest bid"'"(eg.1,200) ";c,d:IF m%(c)-d<0PRINT" Not enough money":GOTO1540
1543 IFd>t THEN1555ELSE b=d+5:PRINT" BEEB bids `";b'" Another Bid?";:IFFNyn="Y"THEN1540
1545 PRINT" BEEB buys";CHR$(p%(v,12));P$(v):s=s-b:p%(v,2)=c%:GOTO1558
1555 PRINT" BEEB will not bid"'N$(c);" buys";CHR$(p%(v,12));P$(v):m%(c)=m%(c)-d:p%(v,2)=c
1558 m%(c%)=s:GOSUB1990:RETURN
1560 o=0:FORb=1TO6:IFp%(cd%(b),0)=c%THENo=o+1
1565 NEXT:RETURN
1600 IFm%(a)-r%<0THENPRINTTAB(1,23)KL$;:PRINTTAB(1,23)Ic$;:GOTO1620
1605 b=d%(a):PRINTTAB(1,23),N$(p%(b,2))" RECEIVES `";r%;:m%(a)=m%(a)-r%:m%(p%(b,2))=m%(p%(b,2))+r%:r%=0
1610 pl%=d%(a):IFpl%=3ORpl%=5ORpl%=8ORpl%=18ORpl%=23ORpl%=33ORpl%=39THEN pl%=20ELSE IFpl%=13ORpl%=29 pl%=10 ELSE pl%=12
1620 FORb=1TO1500:NEXT:PRINTTAB(1,23)KL$;:PRINTTAB(1,23)"DEBT `";r%,TAB(25,pl%)SPC(10),TAB(25,pl%)"CASH `";m%(a):RETURN
1700 CLS:PRINTTAB(10)"House purchase section":PRINTC$;L$:GOSUB600:GOSUB5050
1710 IF p%(v,8)=0OR p%(v,10)>4OR p%(v,0)<>a OR p%(v,2)<>a OR m%(a)-p%(v,9)<0THEN819
1720 GOSUB620:d=k DIV o:IFp%(v,10)>d THEN819
1730 p%(v,10)=p%(v,10)+1:m%(a)=m%(a)-p%(v,9):PRINTTy$
1732 FORb=z TO z+3:IFp%(b,8)>0THENPRINT;b" "P$(b)" "p%(b,10)" "H$
1734 NEXT:GOTO820
1750 CLS:PRINTTAB(10)"House sale section":PRINTC$;L$:GOSUB5050
1760 IFp%(v,2)<>a OR p%(v,10)=0THEN819
1765 GOSUB620:d=k DIV o:IFk/o-d>0THEN1770ELSE1775
1770 IFp%(v,10)-1<d THEN819
1775 p%(v,10)=p%(v,10)-1:m%(a)=m%(a)+p%(v,9)/2:PRINTTy$:GOTO1732
1800 CLS:PRINTTr$;:INPUT" "b:PRINTTw$;:INPUT" "c
1805 INPUT"How much cash? "d
1810 IFm%(b)-d<0THEN819
1815 PRINT"OK":m%(c)=m%(c)+d:m%(b)=m%(b)-d
1820 GOTO820
1830 CLS:PRINTTr$;:INPUT" "b:PRINTTw$;:INPUT" "c:PRINTEp$;:INPUT" "d:PRINTP$(d)
1840 IFp%(d,2)<>b THEN819
1845 PRINT"O.K":p%(d,2)=c:GOTO820
1990 FORb=1TO4200:NEXT:RETURN
2000 s=m%(a):c=d%(a):x=c:GOSUB295:PRINT" THINKING":IFp%(c,10)>0THENGOSUB6700
2100 IFj%(a)=0THEN2200ELSEGOSUB5010:PRINT" BEEB IN JAIL"
2105 j%(a)=j%(a)+1:IFj%(a)=4THEN2107
2106 IFj%(a)<4THEN2110
2107 IFg%(a)>0THENg%(a)=g%(a)-1:PRINT" BEEB USES CARD":GOTO2109
2108 r%=50:t=50:GOSUB3000:IFN$(a)=""THENRETURN
2109 j%(a)=0:PRINT" BEEB leaves jail":GOSUB1990:m%(a)=s:fr=1:GOTO2000
2110 o=0:FORb=1TO40:IFp%(b,2)=7THENo=1
2113 IFp%(b,0)=a AND s>240THEN o=0:b=41
2115 NEXT
2125 IFs-50<0THENo=0
2140 IFo>0THENj%(a)=3:GOTO2105
2145 PRINT" BEEB will remain"
2200 m%(a)=s:PRINT" BEEB throws dice":GOSUB1990:GOSUB1100:IFj%(a)=1THEN d1=0:RETURN
2210 h=d%(a):PRINT" BEEB lands on"CHR$(p%(h,12));P$(h):GOSUB1990
2220 s=m%(a):IFr%>0THEN t=r%:GOSUB3000
2300 IFp%(h,2)<>7THEN2400
2310 t=p%(d%(a),1):FORb=1TO n%:IFb<>c% AND m%(b)>t THEN b=n%+1:t=0
2320 NEXT:IFt=0AND s>p%(d%(a),1)THENGOSUB920:GOTO2400
2330 IFt>0THEN2340
2335 t=p%(d%(a),1):GOSUB3100:IFs<t THENGOSUB1510ELSEGOSUB920:
2337 GOTO2400
2340 t=s-6:FORb=1TO n%:IFm%(b)>s-6 AND m%(b)>t AND b<>c% THEN t=m%(b)
2345 NEXT:IFt>s-6 THENGOSUB3100
2350 GOSUB1510
2400 IFd1=d2 THEN2845
2401 GOSUB5020:IFk>2THEN2700
2403 GOSUB600:pb=0:FORt=1TO8:v=cd%(t)
2405 IFp%(v,0)=a THEN2420
2410 GOSUB620:IFt<3THEN w=w+1
2415 IFw=2THEN c=t+1:pb=t:t=9
2420 NEXT
2425 IFpb=0THEN2700
2430 v=cd%(pb):IFv=38THEN v=37
2435 e=1:GOSUB2660:IFe=1THEN2700
2440 PRINT" BEEB considering an exchange":g=e:e=1:IFc=9THEN2465
2445 c=pb+1:FORt=8 TO c STEP-1:v=cd%(t):IFv=38 THEN v=37
2450 IFe>0THENGOSUB2600
2452 IFe>1THENGOSUB2620
2455 NEXT:IF e=0THEN2700
2465 GOSUB2650:IFk=1THENGOSUB2620ELSE e=1
2470 IF e=0THEN2700
2475 GOSUB2670:IFk=1THENGOSUB2620
2480 GOTO2700
2600 FORb=v TO v+3:IF p%(b,0)<>a AND p%(b,2)=a AND p%(b,8)>0THEN e=b
2605 NEXT:RETURN
2620 *FX15,1
2622 PRINT" BEEB will exchange"CHR$(p%(e,12));P$(e):PRINT" For"CHR$(p%(g,12));P$(g):PRINT" Does ";N$(p%(g,2));" agree?";:IF FNyn=0 THEN e=1:RETURN
2623
2625 PRINTTy$:p%(e,2)=p%(g,2):p%(g,2)=a:e=0:RETURN
2650 k=0:FORb=13TO29STEP16:IFp%(b,2)=a THEN k=k+1:e=b
2655 NEXT:RETURN
2660 FORb=v TO v+3:IFp%(b,2)<>a AND p%(b,8)>0 AND p%(b,2)<>7THENe=b
2665 NEXT:RETURN
2670 k=0:FOR b=6TO36STEP10:IFp%(b,2)=a THEN k=k+1:e=b
2675 NEXT:RETURN
2700 GOSUB5020:IFk>1AND k<4AND s<900THEN2800
2701 IFk=1THENGOSUB620:IFk<9THEN2800
2705 IFs<220THEN2800
2710 GOSUB600:H=0:bh=0:FORb=1TO8:v=cd%(b):IFb<3THEN h=2 ELSE h=3
2711 GOSUB620:IFw=h AND p%(v,0)<>a THENGOSUB6000
2714 IFs<220THENb=9
2715 NEXTb:IFbh=1THEN2800
2780 z=1:H=-1:REPEAT:GOSUB6020
2785 z=z+1:UNTILz>40ORs<220
2800 GOSUB600:FORm=1TO8:v=cd%(m):IFp%(v,0)<>a THEN2840
2802 x=0:GOSUB6100:IFx=0THEN2840
2804 t=p%(v,9)
2805 GOSUB620:bh=0:IFm<3THEN h=2 ELSE h=3
2810 IFk>=9THEN2840
2815 c=v+3:e=k MOD h:IFm=1THEN c=c-1
2816 IFe<>2THEN2820
2817 IFv=12OR v=7OR v=22OR v=17THEN e=3
2820 FORb=v+e TO c:IFs<t AND x=1THENGOSUB3102
2825 IFs<t THENb=c+1:GOTO2837
2830 IFp%(b,8)>0THENp%(b,10)=p%(b,10)+1:PRINT" BEEB buys a house on "CHR$(p%(b,12));P$(b):s=s-p%(b,9):bh=1
2837 NEXTb:IFbh=1THEN2805
2840 NEXTm
2845 m%(a)=s:GOSUB1990:RETURN
3000 IF s>t THEN3080
3005 GOSUB6500:GOSUB3100:IFs>t THEN3080
3010 GOSUB3130:IFs>t THEN3080
3012 GOSUB900:IFN=2THENGOSUB3200:IF s>t THEN3080
3015 GOSUB3160:IFs>t THEN3080
3020 GOSUB6505:GOSUB3200:IFs>t THEN3080
3030 GOSUB600:GOSUB3130:IFs>t THEN3080
3035 GOSUB600:GOSUB3160:IFs>t THEN3080
3040 m%(a)=s:PRINT"BEEB bankrupt":GOSUB7500:s=0:d1=0:t=0:RETURN
3080 s=s-r%:d=d%(a):PRINTN$(p%(d,2))" receives `";r%:m%(p%(d,2))=m%(p%(d,2))+r%:r%=0:RETURN
3100 GOSUB600
3102 d=1:REPEAT:IF p%(d,11)=0AND p%(d,0)<>a AND p%(d,2)=a THENGOSUB3400
3105 d=d+1:UNTILd>40OR s>t:m%(a)=s:RETURN
3130 d=1:REPEAT
3131 IFp%(d,10)>0THEN d=d+3:GOTO3140
3133 IFd>40THEN3140
3135 IFp%(d,11)=0AND p%(d,2)=a THENGOSUB3400
3140 d=d+1:UNTIL s>t OR d>40:RETURN
3160 d=1:REPEAT:IFp%(d,2)=a ANDp%(d,0)<>a THENGOSUB3420
3165 d=d+1:UNTIL s>t OR d>40:RETURN
3200 FORm=8TO1STEP-1:v=cd%(m):IFp%(v,0)<>a THEN3245
3205 GOSUB620:bh=0:IFm<3THEN H=2 ELSE H=3
3210 IFk=0THEN3245
3215 e=k MOD H
3216 IFe=0 THEN e=3
3217 IFe=3AND v=38THEN e=2
3218 IFv<>27AND v<>32THEN3220
3219 IFe=1THEN e=0
3220 FORb=e+v TO v STEP-1
3225 IFp%(b,10)>0THEN s=p%(b,9)DIV2+s:p%(b,10)=p%(b,10)-1:PRINT" BEEB sells a house on "CHR$(p%(b,12));P$(b):bh=1
3230 IF s>t THEN b=e-1:m=0
3235 NEXT
3240 IFbh=1ANDm>0THEN3205
3245 NEXT:RETURN
3400 s=s+p%(d,1)DIV2:PRINT" BEEB mortgages"CHR$(p%(d,12));P$(d):p%(d,11)=1:RETURN
3420 GOSUB5060:PRINT" BEEB will sell"CHR$(p%(d,12));P$(d):PRINT" Enter player No.and highest bid":INPUTb,c:IFm%(b)-c<0THENPRINT" "I$:GOTO3420
3425 m%(b)=m%(b)-c:PRINTTy$:p%(d,2)=b:s=s+c:m%(a)=s:RETURN
4500 CLS:PRINT" Welcome":s=m%(c%):hv=a:a=c%:im=0:T=1:j=0:hj=0
4505 PRINT" Please enter requirements":GOSUB4600:T=0:a=hv:s=m%(a)
4510 GOSUB4720:hj=j:zh=z1:e2=e1:s=m%(a):j=0:IFim=1THEN819
4515 PRINT" Please make your offer":FORb=1TO zh:y(b)=q%(b):NEXT:T=1
4518 GOSUB4600:hv=a:a=c%:T=0:s=m%(c%):GOSUB4720:a=hv:GOSUB1990
4520 IFim=1THEN819
4525 IFhj>j THENGOSUB6510:GOSUB1990:GOTO1990
4530 PRINT"BEEB ACCEPTS":IFz1=0THEN4540
4535 FORb=1TO z1:p%(q%(b),2)=c%:NEXT
4540 IFzh=0THEN4550
4545 FORb=1TO zh:p%(y(b),2)=a:NEXT
4550 m%(a)=m%(a)+(e2-e1):m%(c%)=m%(c%)+(e1-e2):GOTO1990
4600 INPUT" Enter amount of cash: "e1:IFe1>s THEN4600
4605 GOSUB900:IFN=2AND a=c% AND e1>0THENPRINT" I do not buy property with only two"'" players on the board":e1=0
4610 INPUT" Enter total number of properties: "z1:IFz1>5THEN4610
4615 IFz1=0THEN4700
4620 FORb=1 TO z1:GOSUB5050:q%(b)=v:IFp%(v,2)<>a THEN im=1
4625 NEXT
4700 PRINT" I'm thinking":IFe1=0THEN4720
4710 IFs<200THEN j=j+e1*1.4ELSEIF s>900THEN j=j+e1*.7ELSE j=j+e1
4720 IFz1=0THENRETURN
4725 FORq=1TO z1:v=q%(q):IFv=13OR v=29THEN4730ELSE4750
4730 GOSUB2650:IFk=T+1THEN j=j+250
4735 IFk=T THEN j=j+150
4740 GOTO4790
4750 IFv=6OR v=16OR v=26OR v=36THEN4755ELSE4780
4755 GOSUB2670:j=j+175*(k+T):GOTO4790
4780 GOSUB620:IFv<5 OR v>36 THEN w=w+1
4785 j=j+p%(v,1)*(w+T)+(40-v)*4:IFk>0THEN im=1
4790 j=j+p%(v,1)/(p%(v,11)+1):NEXTq:RETURN
5000 FORA=1TO8:PRINTCHR$(X);CHR$(157):NEXT:RETURN
5010 FORb=1TO5:PRINTTAB(15)CHR$(146);J$(b):NEXT:GOSUB1990:RETURN
5020 k=0:FORb=1TO8:IFp%(cd%(b),0)=a THEN k=k+1:v=cd%(b)
5025 NEXT:RETURN
5050 INPUT" Enter Num of property: "v:IFv>40THEN5050
5055 RETURN
5060 FORb=1TO n%:IFN$(b)<>""AND b<>c% THENPRINT" ";b;":";N$(b),"`";m%(b)
5065 NEXT:RETURN
6000 IFv=38THEN c=40ELSE c=v+3
6005 FORz=v TO c:GOSUB6020:IFs<220THEN z=c+1
6015 NEXTz:RETURN
6020 IFp%(z,11)=1AND p%(z,8)>H AND p%(z,2)=a THENPRINT"BEEB redeems mortgage on"CHR$(p%(z,12));P$(z):s=s-(p%(z,1)DIV2+p%(z,1)DIV20):p%(z,11)=0:bh=1
6025 RETURN
6100 FORb=1TO n%:IFN$(b)=""OR b=c% THEN6120
6105 IFd%(b)>v THEN c=40-d%(b)+v ELSE c=v-d%(b)
6110 IFc<13THEN x=1
6120 NEXT:RETURN
6500 RESTORE16505:GOSUB6600:RETURN
6505 RESTORE16510:GOSUB6600:RETURN
6510 RESTORE3144:GOSUB6600:RETURN
6600 FORT=1TO RND(8):READCM$:NEXT:PRINTCM$:RETURN
6700 T%=p%(d%(a),10)
6702 PRINT:IFT%=5THEN 6800
6705 VDU146:FORA%=1TOT%:VDU32,32,126,53,106,125,32,32,32:NEXT:PRINT
6710 VDU146:FORA%=1TOT%:VDU254,255,255,255,255,255,255,253,32:NEXT:PRINT
6715 VDU146:FORA%=1TOT%:VDU255,32,255,255,255,255,32,255,32:NEXT:PRINT
6720 VDU146:FORA%=1TOT%:VDU255,255,255,255,255,255,255,255,32:NEXT:PRINT
6725 VDU146:FORA%=1TOT%:VDU255,32,255,255,255,255,32,255,32:NEXT:PRINT
6730 VDU146:FORA%=1TOT%:VDU255,255,255,32,32,255,255,255,32:NEXT:PRINT
6735 RETURN
6800 VDU145:FORA%=1TO10:VDU255,32:NEXT:VDU255:PRINT
6805 VDU145:FORA%=1TO21:VDU255:NEXT:PRINT
6810 VDU145:FORB%=1TO10:VDU255,96:NEXT:VDU255:PRINT
6815 VDU145:FORA%=1TO21:VDU255:NEXT:PRINT
6820 VDU145:FORB%=1TO10:VDU255,96:NEXT:VDU255:PRINT
6825 VDU145:FORA%=1TO21:VDU255:NEXT:VDU96,96,107:PRINT:RETURN
6900 p%(40,2)=c%:p%(38,2)=c%:p%(27,2)=c%:m%(c%)=200:RETURN
7000 FORb=1TO40:IFp%(b,2)=a THENp%(b,2)=7:p%(b,11)=0:p%(b,10)=0
7005 NEXT:m%(a)=0:N$(a)="":RETURN
7500 z=p%(d%(a),2):IFz=0 THEN z=7
7505 FOR b=1TO40:IFp%(b,2)=a THENp%(b,2)=z:m%(a)=m%(a)+p%(b,9)DIV2*p%(b,10):p%(b,10)=0
7510 NEXT:m%(z)=m%(z)+m%(a):r%=0:N$(a)="":PRINTN$(z)" receives `";m%(a):m%(a)=0:GOSUB1990:RETURN
7800 p%(38,2)=c%:p%(40,2)=c%:p%(40,10)=2:p%(38,10)=2:m%(c%)=40:RETURN
8000 fr=0:DIMP$(40),p%(40,13),d%(6),m%(7),N$(7),V$(6),y(6),D$(6),j%(6),g%(6),cd%(8),q%(5),J$(5)
8010 FORa=1TO40:READP$(a):NEXT:L$=STRING$(39,CHR$(243))+CHR$8:C$=CHR$(151):T$="Payable `":R$="Rent `":I$="Illegal move":N$(0)="Creditor":N$(7)="THE BANK":Td$="Transfer"
8020 Tr$="From which player? (enter number)":Tw$="To which player? (enter number)":Ic$="Insufficient capital":Ty$=" Thank you":KL$=STRING$(320,CHR$(32)):Ep$="Enter property Num"
8025 J$(1)=STRING$(6,CHR$(240))+CHR$(176):J$(2)=STRING$(7,CHR$(181)):J$(3)=J$(2):J$(4)=J$(2):J$(5)=STRING$(6,CHR$(163))+CHR$(161)
8030 FORa=1TO6:READV$(a):NEXT:Mo$="Mortgage":H$="House(s)":Co$="Computer link":E$="Estate Agent":Q$="Quit Game"
8040 FORa=1TO8:READcd%(a):NEXT:r%=0:d3=0
8050 RETURN
8060 FORa=1TO40:FORb=1TO12:READp%(a,b):NEXT:NEXT
8065 INPUT"Enter the number of players (Max 5) "n%:n%=n%+1
8070 FORa=1TOn%:m%(a)=1500:d%(a)=1:NEXT:FORa=1TOn%-1:PRINT"Enter the name of player ";a;": ";:INPUT""D$(a)
8072 IFLEN(D$(a))>6THENPRINT"NO MORE THAN 6 LETTERS!":a=a-1
8074 NEXT:D$(n%)="BEEB"
8075 FORa=1TOn%
8080 y(a)=RND(n%):FORb=1TOa
8083 IFy(a)=y(b-1)THENa=a-1
8085 NEXTb:NEXTa
8087 PRINT"Order of play":FORa=1TOn%:N$(a)=D$(y(a)):IFN$(a)="BEEB"THENc%=a
8090 PRINT" ";a;": ";N$(a):NEXT
8100 RETURN
9000 DATA GO ],OLD KENT RD,COMMUNITY CHEST,WHITECHAPEL,INCOME TAX,KINGS CROSS,ANGEL ISLINGTON,CHANCE,EUSTON ROAD,PENTONVILLE,JAIL/VISITING
9010 DATA PALL MALL,ELECTRICITY CO.,WHITEHALL,NORTHUMBERLAND AV,MARYLEBONE STATION,BOW STREET,COMMUNITY CHEST,MARLBOROUGH ST.,VINE STREET,FREE PARKING
9020 DATA THE STRAND,CHANCE,FLEET STREET,TRAFALGAR SQUARE,FENCHURCH ST.STATION,LEICESTER SQUARE,COVENTRY STREET,WATER WORKS,PICCADILLY,GO TO JAIL
9030 DATA REGENT STREET,OXFORD STREET,COMMUNITY CHEST,BOND STREET,LIVERPOOL ST.STATION,CHANCE,PARK LANE,EXCISE TAX,MAYFAIR
9035 DATA"*","#","?","&","!","@"
9036 DATA38,2,7,27,22,17,12,32
9040 DATA0,0,0,0,0,0,0,0,0,0,0,135
9050 DATA60,7,2,10,30,90,160,250,50,0,0,134
9060 DATA0,0,0,0,0,0,0,0,0,0,0,136
9070 DATA60,7,4,20,60,180,320,450,50,0,0,134
9080 DATA0,0,0,0,0,0,0,0,0,0,0,135
9090 DATA200,7,25,25,50,100,200,0,0,0,0,135
9100 DATA100,7,6,30,90,270,400,550,50,0,0,132
9110 DATA0,0,0,0,0,0,0,0,0,0,0,136
9120 DATA100,7,6,30,90,270,400,550,50,0,0,132
9130 DATA120,7,8,40,100,300,450,600,50,0,0,132
9140 DATA0,0,0,0,0,0,0,0,0,0,0,135
9150 DATA140,7,10,50,150,450,625,750,100,0,0,133
9160 DATA150,7,0,0,0,0,0,0,0,0,0,135
9170 DATA140,7,10,50,150,450,625,750,100,0,0,133
9180 DATA160,7,12,60,180,500,700,900,100,0,0,133
9190 DATA200,7,25,25,50,100,200,0,0,0,0,135
9200 DATA180,7,14,70,200,550,750,950,100,0,0,134
9210 DATA0,0,0,0,0,0,0,0,0,0,0,136
9220 DATA180,7,14,70,200,550,750,950,100,0,0,134
9230 DATA200,7,16,80,220,600,800,1000,100,0,0,134
9240 DATA0,0,0,0,0,0,0,0,0,0,0,135
9250 DATA220,7,18,90,250,700,875,1050,150,0,0,129
9260 DATA0,0,0,0,0,0,0,0,0,0,0,136
9270 DATA220,7,18,90,250,700,875,1050,150,0,0,129
9280 DATA240,7,20,100,300,750,925,1100,150,0,0,129
9290 DATA200,7,25,25,50,100,200,0,0,0,0,135
9300 DATA260,7,22,110,330,800,975,1150,150,0,0,131
9310 DATA260,7,22,110,330,800,975,1150,150,0,0,131
9320 DATA150,7,0,0,0,0,0,0,0,0,0,135
9330 DATA280,7,22,120,360,850,1025,1200,150,0,0,131
9340 DATA0,0,0,0,0,0,0,0,0,0,0,135
9350 DATA300,7,26,130,390,900,1100,1275,200,0,0,130
9360 DATA300,7,26,130,390,900,1100,1275,200,0,0,130
9370 DATA0,0,0,0,0,0,0,0,0,0,0,136
9380 DATA320,7,28,150,450,1000,1200,1400,200,0,0,130
9390 DATA200,7,25,25,50,100,200,0,0,0,0,135
9400 DATA0,0,0,0,0,0,0,0,0,0,0,136
9410 DATA350,7,35,175,500,1100,1300,1500,200,0,0,133
9420 DATA0,0,0,0,0,0,0,0,0,0,0,135
9430 DATA400,7,50,200,600,1400,1700,2000,200,0,0,133
10400
10500 CLS:INPUT"Enter file name: "A$:U%=OPENOUT A$:FORA%=1TO40:FORB%=1TO12:PRINT#U%,p%(A%,B%):NEXTB%:NEXTA%
10505 PRINT#U%,n%:FORA%=1TOn%:PRINT#U%,j%(A%),g%(A%),m%(A%),d%(A%),N$(A%):NEXT:PRINT#U%,c%:CLOSE#U%:RETURN
10800
11000 INPUT"Enter file name: "A$:U%=OPENIN A$:IF U%=0 PRINT"No file of that name":GOTO11000
11001 FORA%=1TO40:FORB%=1TO12:INPUT#U%,p%(A%,B%):NEXTB%:NEXTA%
11005 INPUT#U%,n%:FORA%=1TOn%:INPUT#U%,j%(A%),g%(A%),m%(A%),d%(A%),N$(A%):NEXT
11010 INPUT#U%,c%:CLOSE#U%:RETURN
12000 CLS:PRINTTAB(9)"Time limit expired"'"Results follow:"
12005 PRINT:FORa=1TO n%:IFN$(a)=""THEN12050
12010 FORb=1TO40:IFp%(b,2)=a THEN m%(a)=m%(a)+p%(b,1)DIV(p%(b,11)+1)+p%(b,10)*p%(b,9)
12025 NEXTb
12050 NEXTa
12060 FORa=1TO n%:IFm%(a)<m%(a+1)AND a<6 THENGOSUB12150
12070 NEXTa
12090 FORa=1TO2:VDU141,132,157,129,136:PRINTN$(1);TAB(15)"`"m%(1);TAB(25)"WINNER":NEXT:GOSUB1990
12100 FORa=2TO n%:PRINTN$(a);TAB(10)"`"m%(a):NEXT:END
12150 k=m%(a+1):k$=N$(a+1):m%(a+1)=m%(a):N$(a+1)=N$(a):N$(a)=k$:m%(a)=k:a=0:RETURN
16200 DATA On yer bike Jimmy,I'm no fool laddy!,The man's a lunatic - no chance!,I may be poor but I'm not daft,I don't do deals with mean types like you,You must be joking!
16205 DATA You'll have to do better,You cannot be serious
16505 DATA Cash is a little short at the moment,Times are hard,It's a result of financial mismanagement,What a way to run a business,"Easy come, easy go!",A mere financial hiccup,Poverty knocks!,I hate being in debt
16510 DATA Things are worse than I thought,Dire financial difficulties,Call for the Chancellor!,The last of the big spenders,Do you take Barclaycard?,I think I'll ask Mr Laker what he'd do,Give us a job
16511 DATA I don't like this game
17000 DEFFNyn:LOCAL A$:INPUT" (Y/N) "A$:IF INSTR("Yy",LEFT$(A$,1)): ="Y" ELSE ="N"
17010 DEFPROCerr:REPORT:IF INKEY-2 END ELSE ENDPROC