home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Games / CAT-AND-MOUSE (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  3.5 KB  |  143 lines

  1. 10 PRINT"":REM ****    CAT & MOUSE      ***
  2. 20 PRINT"":REM **** MODIFIED FOR COM 64 ***
  3. 30 PRINT"":REM ****   BY D.HALL FEB 83  ***
  4. 100 POKE53281,1:POKE53280,3:PRINT""
  5. 110 SP=32:SS=96:WC=160
  6. 120 IN=197:POKE650,128
  7. 130 CC=90:C=87
  8. 140 TP=1024
  9. 150 C$="                                 "
  10. 160 DEFFNP(X)=TP+V*80+H*2
  11. 180 DIMT(3),M(200)
  12. 190 GOSUB2000:PRINT"[156]"
  13. 200 GOSUB1000
  14. 210 PRINT"         COUNTDOWN:5";:TT=TI:D=5
  15. 220 IFTI-TT<60THEN220
  16. 230 PRINT"[157] ";:IFD=0THEN250
  17. 240 D=D-1:POKETP+18,D+48:TT=TI:GOTO220
  18. 250 PRINTC$
  19. 260 T=0:M=0
  20. 300 IFTTHENT=0:GOTO360
  21. 310 T=1:MC=MC-1:IFMC<0THENMC=3
  22. 320 D=PEEK(PC+T(MC))
  23. 330 IFD=SPORD=S1ORD=CTHEN360
  24. 340 IFMC<3THENMC=MC+1:GOTO320
  25. 350 MC=0:GOTO320
  26. 360 POKEPC,SP:PC=PC+T(MC):POKEPC,CC
  27. 370 IFP=PCTHEN700
  28. 400 FORF=1TOS:GOSUB500:NEXT
  29. 410 POKEP,SP:P=P+M:IFPEEK(P)=WCORP=BETHENP=P-M:M=0
  30. 420 IFP=PCTHEN700
  31. 430 POKEP,C
  32. 440 IFP<>HOTHEN300
  33. 450 GOTO600
  34. 500 D=PEEK(IN)
  35. 510 IFD=64THENM=0:RETURN
  36. 520 IFD=5THENM=40:RETURN
  37. 530 IFD=6THENM=-1:RETURN
  38. 540 IFD=3THENM=1:RETURN
  39. 550 IFD=4THENM=-40:RETURN
  40. 560 RETURN
  41. 600 T(0)=1:T(2)=-1:T=0:S=1
  42. 610 FORF=0TO29:NEXT:POKEP,32
  43. 620 IFPEEK(P+T(S))=WCTHEN660
  44. 630 IFP+T=BETHEN660
  45. 640 IFT=3THENZ$="[145]":GOTO800
  46. 650 T=T+1:S=S+1:IFS=4THENS=0
  47. 660 P=P+T(T):POKEP,C:GOTO610
  48. 700 PRINT"";TAB(HM);"YUM YUM"
  49. 710 FORF=0TO300:POKEP,C:POKEP,CC:NEXT
  50. 720 PRINTC$:PRINTTAB(HM);"[209]BURP"
  51. 730 IFMT=1THENFORF=0TO799:NEXT:GOTO760
  52. 740 FORF=TPTO33685:IFPEEK(F)=S1THENPOKEF,SP
  53. 750 NEXT
  54. 760 PRINTC$:Z$="[218]"
  55. 770 POKEPC,SP
  56. 800 FORF=0TO9:GETT$:NEXT:PRINT"";
  57. 810 N$="  NEW GAME? "
  58. 820 FORF=1TOLEN(N$)
  59. 830 PRINT MID$(N$,F,1);Z$;"[157]";
  60. 840 FORD=0TO29:NEXT:NEXT
  61. 850 PRINT:PRINT""
  62. 860 PRINT"( PRESS RETURN FOR NEW MAZE TYPE )"
  63. 870 PRINT"";N$;
  64. 900 T=0
  65. 910 GETT$:IFT$<>""THEN960
  66. 920 IFT=0THENPRINT" ";:GOTO940
  67. 930 PRINTZ$;
  68. 940 PRINT"[157]";:T=1-T
  69. 950 FORF=0TO199:NEXT:GOTO910
  70. 960 IFT$="N"THENPRINT"[147]":END
  71. 970 IFT$=CHR$(13)THENGOSUB2500:GOTO200
  72. 980 IFT$="Y"THEN200
  73. 990 GOTO920
  74. 1000 REM DESIGN MAZE
  75. 1200 PRINT"[147]":FORF=0TO2*VM
  76. 1210 PRINTLEFT$("                                       ",2*HM+3):NEXT
  77. 1211 REM           01234567890123456789012345678901234567
  78. 1220 H=INT(HM*RND(1)+1):V=INT(VM*RND(1)+1)
  79. 1230 P=FNP(X):M=0
  80. 1300 POKEP,S2:T=0
  81. 1310 IFPEEK(P-80)=WCTHENT(T)=-40:T=T+1
  82. 1320 IFPEEK(P-2)=WCTHENT(T)=-1:T=T+1
  83. 1330 IFPEEK(P+80)=WCTHENT(T)=40:T=T+1
  84. 1340 IFPEEK(P+2)=WCTHENT(T)=1:T=T+1
  85. 1350 IFT>1THEND=T(T*RND(1)):M(M)=P:M=M+1:POKEP+D,S1:P=P+2*D:GOTO1300
  86. 1360 IFT=1THEND=T(0):POKEP+D,S1:P=P+2*D:GOTO1300
  87. 1400 IFM=0THEN1500
  88. 1410 M=M-1:P=M(M)
  89. 1420 IFPEEK(P-80)+PEEK(P-2)+PEEK(P+80)+PEEK(P+2)=ASTHEN1400
  90. 1440 GOTO1300
  91. 1500 V=INT(VM*RND(1))+1:H=HM:HO=FNP(0)+1:POKEHO,SS
  92. 1510 V=INT(VM*RND(1))+1:H=1:BE=FNP(0)-1:POKEBE,SS
  93. 1520 P=BE+1:POKEP,C
  94. 1530 PC=HO-1:POKEPC,CC:MC=INT(RND(1))*4
  95. 1540 T(0)=1+(RND(1)<.5)*2
  96. 1550 T(1)=40:T(3)=-40:T(2)=T(0)*-1
  97. 1599 RETURN
  98. 2000 PRINT"[147]           CAT & MOUSE "
  99. 2010 PRINT"THE OBJECT OF THE GAME IS TO GET THE"
  100. 2020 PRINT"MOUSE OUT OF THE MAZE, WITHOUT BEING"
  101. 2030 PRINT"EATEN BY THE CAT."
  102. 2040 PRINT"TO MOVE THE MOUSE USE"
  103. 2050 PRINT" F 1 - TO MOVE UP  "
  104. 2060 PRINT" F 3 - TO MOVE DOWN"
  105. 2070 PRINT" F 5 - TO MOVE LEFT"
  106. 2080 PRINT" F 7 - TO MOVE RIGHT"
  107. 2090 PRINT
  108. 2100 PRINT"THE CAT IS SHOWN AS '[218]'."
  109. 2110 PRINT"THE MOUSE IS SHOWN AS '[215]'."
  110. 2200 PRINT"PRESS ANY KEY TO CONTINUE"
  111. 2210 GETZ$:IFZ$=""THEN2210
  112. 2500 PRINT"[147]  PLEASE SPECIFY TYPE OF MAZE:"
  113. 2510 PRINT"  1:ORDINARY"
  114. 2520 PRINT"  2:JAILBREAK"
  115. 2530 PRINT"  3:HAYFIELD"
  116. 2540 PRINT"TYPE";:T=3:GOSUB2900
  117. 2550 MT=T:ONMTGOTO2560,2570,2580
  118. 2560 S1=SP:S2=SP:GOTO2590
  119. 2570 S1=224:S2=SP:GOTO2590
  120. 2580 S1=224:S2=224:GOTO2590
  121. 2590 AS=4*S2
  122. 2600 PRINT"PLEASE SPECIFY SPEED:"
  123. 2610 PRINT" 1 (SLOW) - 5 (FAST)"
  124. 2620 PRINT"SPEED";:T=5:GOSUB2900
  125. 2630 S=(5-T)*2+1
  126. 2700 PRINT"PLEASE SPECIFY MAZE SIZE:"
  127. 2710 PRINT" 1 (SMALL) - 3 (LARGE)"
  128. 2720 PRINT"SIZE";:T=3:GOSUB2900
  129. 2730 RESTORE:FORF=1TOT:READHM,VM:NEXT
  130. 2740 FORF=0TO999:NEXT:RETURN
  131. 2800 DATA10,7
  132. 2810 DATA14,9
  133. 2820 DATA18,11
  134. 2900 PRINT"?[146] ";:FORF=0TO9:GETZ$:NEXT:R=0:T$="[166]"
  135. 2910 TT=TI+45:R=1-R
  136. 2920 IFRTHENPRINTT$;"[157]";:GOTO2940
  137. 2930 PRINT" [157]";
  138. 2940 GETZ$:IFZ$>""THEN2970
  139. 2950 IFTI<TTTHEN2940
  140. 2960 GOTO2910
  141. 2970 F=ASC(Z$)-48:IFF<1ORF>TTHENT$="?":R=0:GOTO2910
  142. 2980 T=F:PRINTZ$:RETURN
  143.