5 REM**POSTMAN**BBC VERSION** @ P.STANLE Y,CONVERSION GRAHAM/THOMAS 10 DIMB$(2),Y(25),X(25) 20 HS=0:H$="" 30 GOSUB820 40 GOSUB340 50 GOSUB520 60 GOSUB250 70 VDU7 80 FORI=1TO3 90 IFINKEY(-26) ANDFNAT(X-1,Y)=32 ANDFNA T(X-1,Y+1)=32 A$=CHR$228+CHR$229:B$(1)=" "+CH R$230:B$(2)=" "+CHR$231:X=X-1 100 IFINKEY(-122) ANDFNAT(X+2,Y)=32 ANDFN AT(X+2,Y+1)=32 A$=CHR$224+CHR$225:B$(1)=CHR$2 26:B$(2)=CHR$227:X=X+1 110 IFINKEY(-58) ANDFNAT(X,Y-1)=32 ANDFNA T(X+1,Y-1)=32 A$=CHR$232+" ":B$(1)=CHR$233:B$ (2)=CHR$236:Y=Y-1 120 IFINKEY(-42) ANDFNAT(X,Y+2)=32 ANDFNA T(X+1,Y+2)=32 A$=CHR$234+" ":B$(1)=CHR$235:B$ (2)=CHR$235:Y=Y+1 130 COLOUR4:PRINTTAB(X1,Y1)" ";TAB(X1,Y1 +1)" ";TAB(X,Y)A$;TAB(X,Y+1)B$(1):Y1=Y:X1=X 140 IFLT=1 ANDX=HX+1 ANDY=HY FORF=1TO10:S OUND1,-15,F*10,1:NEXT:SC=SC+O:COLOUR3::PRINTT AB(6,27);SC:GOSUB250 150 IFLT=0 AND(ABS(X-PX)<2 ANDABS(Y-PY)<2 ) LT=1:SC=SC+10:SOUND1,-15,RND(100)+100,3:COL OUR3:PRINTTAB(6,27);SC:O=FNA 160 NEXTI 170 DY=DY-(DY<Y+1)+(DY>Y+1) 180 IFDX<X DX=DX+1:D$=CHR$237 190 IFDX>X DX=DX-1:D$=CHR$238 200 IFFNAT(DX,DY)<>32 U=DX:DX=DX-(DX<X)+(DX >X):IFU=DX DX=DX+1 210 COLOUR5:PRINTTAB(HX,HY)CHR$242:COLOUR7: PRINTTAB(DX1,DY1)" ";TAB(DX,DY)D$ 220 DY1=DY:DX1=DX:T=T-1:COLOUR5:PRINTTAB(16 ,27);T" ":IFT=0 GOTO700 230 IF(DX>X-2 ANDDX<X+3) AND(DY>Y-2 ANDDY<Y +3) GOTO 370 240 GOTO80 250 COLOUR1:PRINTTAB(PX,PY)CHR$239;TAB(PX,P Y+1)CHR$240;TAB(HX,HY)" " 260 F=RND(LB):IFLB=1 F=1 270 LT=0 280 PX=X(F):PY=Y(F) 290 COLOUR9:PRINTTAB(PX,PY)CHR$239;TAB(PX,P Y+1)CHR$240 300 HX=RND(8)*2+1:HY=RND(11)*2+1 310 IFFNAT(HX,HY)<>32 ORFNAT(HX+1,HY)<>32 O RFNAT(HX+2,HY)<>32 GOTO300 320 COLOUR5:PRINTTAB(HX,HY)CHR$242 330 RETURN 340 INPUT''''"How many post boxes would you like thereto be? (any number between 1 and 2 5) "LB 350 IFLB<1 ORLB>25 GOTO340 360 RETURN 370 COLOUR4:FORF=1TO12:PRINTTAB(X,Y)CHR$224 ;CHR$225;TAB(X,Y+1)CHR$226" " 380 SOUND0,-15,6,1:SOUND0,-15,5,1:SOUND1, -15,5,2 390 PRINTTAB(X,Y)CHR$232" ";TAB(X,Y+1)CHR $233" " 400 FORK=0TO100:NEXT 410 PRINTTAB(X,Y)CHR$228;CHR$229;TAB(X,Y+ 1)" "CHR$230 420 FORK=0TO100:NEXT 430 PRINTTAB(X,Y)CHR$234" ";TAB(X,Y+1)CHR $235" " 440 FORK=0TO100:NEXT 450 NEXT 460 PRINTTAB(X,Y)" ";TAB(X,Y+1)" ";TAB(DX ,DY)" " 470 T=T-50:IFT<=0 GOTO700 480 PRINTTAB(16,27);T" " 490 Y=23:X=17:Y1=Y:X1=X 500 DY=1:DX=1:DY1=DY:DX1=DX 510 GOTO60 520 MODE2:VDU17,2,23;11,0;0;0;0; 530 FORF=0TO25:PRINTTAB(0,F)CHR$241;TAB(19, F)CHR$241:NEXT 540 FORF=1TO18:PRINTTAB(F,0)CHR$241;TAB(F,2 5)CHR$241:NEXT 550 FORF=1 TOLB 560 Y=RND(5)*4-1:X=RND(5)*3 570 IFFNAT(X,Y)<>32 ORFNAT(X,Y+1)<>32 GOT O560 580 Y(F)=Y:X(F)=X 590 COLOUR1:PRINTTAB(X,Y)CHR$239;TAB(X,Y+1) CHR$240:NEXT 600 Y=23:X=17:Y1=Y:X1=X 610 A$=CHR$228+CHR$229:B$(1)=" "+CHR$230:B$ (2)=" "+CHR$231 620 COLOUR6 630 SC=0:T=500:PRINTTAB(0,27)"SCORE:";SC;TA B(11,27)"TIME:";T 640 LT=0:PY=Y(LB):PX=X(LB) 650 DY=1:DX=1:D$=CHR$237 660 DY1=DY:DX1=DX 670 HX=0:HY=26 680 DEFFNA=INT(SQR((HY-PY)^2+(HX-PX)^2)) 690 RETURN 700 FORF=0TO10:SOUND1,-15,100-F*10,1:NEXT 710 COLOUR2 720 CLS:PRINTTAB(0,5)"You ran out of time." 730 COLOUR3 740 PRINT''"You scored ";SC 750 COLOUR6 760 IFSC>HS HS=SC:PRINT'''"Well Done! That' s a"''"new High Score."''"Please enter name." :INPUTH$:GOTO790 770 COLOUR5 780 PRINT''"The High Score is"'';HS" held b y postman"''H$ 790 FORF=0TO2000:NEXT:COLOUR7 800 PRINTTAB(0,25)"Press space to play"''" again." 810 REPEATUNTILINKEY(-99):MODE7:GOTO40 820 RESTORE830:FORF=224TO242:VDU23,F:FORI=0 TO7:READG:VDUG:NEXT, 830 DATA120,126,236,231,255,255,124,56,0, 0,0,254,255,254,0,0 840 DATA56,127,184,184,40,72,136,76,56,25 4,185,56,40,37,34,48 850 DATA0,0,0,127,255,127,0,0,30,126,55,2 31,255,255,62,28 860 DATA28,127,157,28,20,164,68,12,28,254 ,29,29,20,18,17,50 870 DATA16,56,56,56,56,56,56,56,124,254,1 24,56,126,184,40,32 880 DATA28,62,91,73,62,62,93,157,28,28,28 ,28,0,0,0,0 890 DATA124,254,124,56,252,58,40,8,8,14,1 39,142,252,124,68,68 900 DATA32,112,209,113,63,62,34,34,60,126 ,255,126,66,126,126,126,102,102,102,126,126,1 26,126,255 910 DATA126,195,189,165,165,189,195,126,3 2,126,255,126,86,86,126,126 920 MODE7:PRINT'CHR$&91" j`i 6`4h`` `7 !jd_n 6`4jdj"'CHR$&91" j`! 5 5 `i 5 j !j 7`5j*z"'CHR$&91" "" ""` ""`! ! "" "" ! !"" """ 930 PRINT'CHR$&83"First collect a letter from the"'CHR$&83"flashing post box. Then del iver it to"'CHR$&83"the little purple house." 940 PRINT''CHR$&86"You have limited time, and if you are"'CHR$&86"attacked by the dog,y ou will lose time." 950 PRINT'" Letters are collected or deli vered on the right-hand side of the post bo xes or houses." 960 PRINT''CHR$&82"Move using the cursor keys." 970 PRINT''CHR$136;CHR$&85" Press SPA CE to start." 980 REPEATUNTILINKEY(-99):*FX15 990 CLS:RETURN 1000 DEFFNAT(X%,Y%) 1010 VDU31,X%,Y% 1020 A%=135:A%=USR&FFF4 AND&FFFF 1030 =A% DIV256