home *** CD-ROM | disk | FTP | other *** search
- 10 PRINT"":REM **** CAT & MOUSE ***
- 20 PRINT"":REM **** MODIFIED FOR COM 64 ***
- 30 PRINT"":REM **** BY D.HALL FEB 83 ***
- 100 POKE53281,1:POKE53280,3:PRINT""
- 110 SP=32:SS=96:WC=160
- 120 IN=197:POKE650,128
- 130 CC=90:C=87
- 140 TP=1024
- 150 C$=" "
- 160 DEFFNP(X)=TP+V*80+H*2
- 180 DIMT(3),M(200)
- 190 GOSUB2000:PRINT"[156]"
- 200 GOSUB1000
- 210 PRINT" COUNTDOWN:5";:TT=TI:D=5
- 220 IFTI-TT<60THEN220
- 230 PRINT"[157] ";:IFD=0THEN250
- 240 D=D-1:POKETP+18,D+48:TT=TI:GOTO220
- 250 PRINTC$
- 260 T=0:M=0
- 300 IFTTHENT=0:GOTO360
- 310 T=1:MC=MC-1:IFMC<0THENMC=3
- 320 D=PEEK(PC+T(MC))
- 330 IFD=SPORD=S1ORD=CTHEN360
- 340 IFMC<3THENMC=MC+1:GOTO320
- 350 MC=0:GOTO320
- 360 POKEPC,SP:PC=PC+T(MC):POKEPC,CC
- 370 IFP=PCTHEN700
- 400 FORF=1TOS:GOSUB500:NEXT
- 410 POKEP,SP:P=P+M:IFPEEK(P)=WCORP=BETHENP=P-M:M=0
- 420 IFP=PCTHEN700
- 430 POKEP,C
- 440 IFP<>HOTHEN300
- 450 GOTO600
- 500 D=PEEK(IN)
- 510 IFD=64THENM=0:RETURN
- 520 IFD=5THENM=40:RETURN
- 530 IFD=6THENM=-1:RETURN
- 540 IFD=3THENM=1:RETURN
- 550 IFD=4THENM=-40:RETURN
- 560 RETURN
- 600 T(0)=1:T(2)=-1:T=0:S=1
- 610 FORF=0TO29:NEXT:POKEP,32
- 620 IFPEEK(P+T(S))=WCTHEN660
- 630 IFP+T=BETHEN660
- 640 IFT=3THENZ$="[145]":GOTO800
- 650 T=T+1:S=S+1:IFS=4THENS=0
- 660 P=P+T(T):POKEP,C:GOTO610
- 700 PRINT"";TAB(HM);"YUM YUM"
- 710 FORF=0TO300:POKEP,C:POKEP,CC:NEXT
- 720 PRINTC$:PRINTTAB(HM);"[209]BURP"
- 730 IFMT=1THENFORF=0TO799:NEXT:GOTO760
- 740 FORF=TPTO33685:IFPEEK(F)=S1THENPOKEF,SP
- 750 NEXT
- 760 PRINTC$:Z$="[218]"
- 770 POKEPC,SP
- 800 FORF=0TO9:GETT$:NEXT:PRINT"";
- 810 N$=" NEW GAME? "
- 820 FORF=1TOLEN(N$)
- 830 PRINT MID$(N$,F,1);Z$;"[157]";
- 840 FORD=0TO29:NEXT:NEXT
- 850 PRINT:PRINT""
- 860 PRINT"( PRESS RETURN FOR NEW MAZE TYPE )"
- 870 PRINT"";N$;
- 900 T=0
- 910 GETT$:IFT$<>""THEN960
- 920 IFT=0THENPRINT" ";:GOTO940
- 930 PRINTZ$;
- 940 PRINT"[157]";:T=1-T
- 950 FORF=0TO199:NEXT:GOTO910
- 960 IFT$="N"THENPRINT"[147]":END
- 970 IFT$=CHR$(13)THENGOSUB2500:GOTO200
- 980 IFT$="Y"THEN200
- 990 GOTO920
- 1000 REM DESIGN MAZE
- 1200 PRINT"[147]":FORF=0TO2*VM
- 1210 PRINTLEFT$(" ",2*HM+3):NEXT
- 1211 REM 01234567890123456789012345678901234567
- 1220 H=INT(HM*RND(1)+1):V=INT(VM*RND(1)+1)
- 1230 P=FNP(X):M=0
- 1300 POKEP,S2:T=0
- 1310 IFPEEK(P-80)=WCTHENT(T)=-40:T=T+1
- 1320 IFPEEK(P-2)=WCTHENT(T)=-1:T=T+1
- 1330 IFPEEK(P+80)=WCTHENT(T)=40:T=T+1
- 1340 IFPEEK(P+2)=WCTHENT(T)=1:T=T+1
- 1350 IFT>1THEND=T(T*RND(1)):M(M)=P:M=M+1:POKEP+D,S1:P=P+2*D:GOTO1300
- 1360 IFT=1THEND=T(0):POKEP+D,S1:P=P+2*D:GOTO1300
- 1400 IFM=0THEN1500
- 1410 M=M-1:P=M(M)
- 1420 IFPEEK(P-80)+PEEK(P-2)+PEEK(P+80)+PEEK(P+2)=ASTHEN1400
- 1440 GOTO1300
- 1500 V=INT(VM*RND(1))+1:H=HM:HO=FNP(0)+1:POKEHO,SS
- 1510 V=INT(VM*RND(1))+1:H=1:BE=FNP(0)-1:POKEBE,SS
- 1520 P=BE+1:POKEP,C
- 1530 PC=HO-1:POKEPC,CC:MC=INT(RND(1))*4
- 1540 T(0)=1+(RND(1)<.5)*2
- 1550 T(1)=40:T(3)=-40:T(2)=T(0)*-1
- 1599 RETURN
- 2000 PRINT"[147] CAT & MOUSE "
- 2010 PRINT"THE OBJECT OF THE GAME IS TO GET THE"
- 2020 PRINT"MOUSE OUT OF THE MAZE, WITHOUT BEING"
- 2030 PRINT"EATEN BY THE CAT."
- 2040 PRINT"TO MOVE THE MOUSE USE"
- 2050 PRINT" F 1 - TO MOVE UP "
- 2060 PRINT" F 3 - TO MOVE DOWN"
- 2070 PRINT" F 5 - TO MOVE LEFT"
- 2080 PRINT" F 7 - TO MOVE RIGHT"
- 2090 PRINT
- 2100 PRINT"THE CAT IS SHOWN AS '[218]'."
- 2110 PRINT"THE MOUSE IS SHOWN AS '[215]'."
- 2200 PRINT"PRESS ANY KEY TO CONTINUE"
- 2210 GETZ$:IFZ$=""THEN2210
- 2500 PRINT"[147] PLEASE SPECIFY TYPE OF MAZE:"
- 2510 PRINT" 1:ORDINARY"
- 2520 PRINT" 2:JAILBREAK"
- 2530 PRINT" 3:HAYFIELD"
- 2540 PRINT"TYPE";:T=3:GOSUB2900
- 2550 MT=T:ONMTGOTO2560,2570,2580
- 2560 S1=SP:S2=SP:GOTO2590
- 2570 S1=224:S2=SP:GOTO2590
- 2580 S1=224:S2=224:GOTO2590
- 2590 AS=4*S2
- 2600 PRINT"PLEASE SPECIFY SPEED:"
- 2610 PRINT" 1 (SLOW) - 5 (FAST)"
- 2620 PRINT"SPEED";:T=5:GOSUB2900
- 2630 S=(5-T)*2+1
- 2700 PRINT"PLEASE SPECIFY MAZE SIZE:"
- 2710 PRINT" 1 (SMALL) - 3 (LARGE)"
- 2720 PRINT"SIZE";:T=3:GOSUB2900
- 2730 RESTORE:FORF=1TOT:READHM,VM:NEXT
- 2740 FORF=0TO999:NEXT:RETURN
- 2800 DATA10,7
- 2810 DATA14,9
- 2820 DATA18,11
- 2900 PRINT"?[146] ";:FORF=0TO9:GETZ$:NEXT:R=0:T$="[166]"
- 2910 TT=TI+45:R=1-R
- 2920 IFRTHENPRINTT$;"[157]";:GOTO2940
- 2930 PRINT" [157]";
- 2940 GETZ$:IFZ$>""THEN2970
- 2950 IFTI<TTTHEN2940
- 2960 GOTO2910
- 2970 F=ASC(Z$)-48:IFF<1ORF>TTHENT$="?":R=0:GOTO2910
- 2980 T=F:PRINTZ$:RETURN
-