home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 11 / 011.d81 / easter (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  5KB  |  227 lines

  1. 10 iflf>0then63000
  2. 110 rem bruce jaeger
  3. 120 rem
  4. 130 df=7:rem difficulty factor
  5. 140 rem     (greater is harder)
  6. 150 poke53280,7:poke53281,1
  7. 160 cl$=chr$(147):ho$=chr$(19):printcl$
  8. 170 re$=chr$(150):gr$=chr$(153)
  9. 180 ye$=chr$(158):bl$=chr$(154)
  10. 190 pu$=chr$(156):bk$=chr$(144)
  11. 200 rv$=chr$(18):ro$=chr$(146)
  12. 210 j2=56320:v=53248:pokev+21,0
  13. 220 sd=54272
  14. 230 def fnr(x)=int(rnd(1)*x)+1
  15. 240 x=fnr(-ti) : in=4 : hs=99999
  16. 250 poke53272,21
  17. 260 forx=1to10:readz
  18. 270 bc$=bc$+chr$(z):next
  19. 280 data 5,5,5,5,30,30,153,153,158,155
  20. 290 forx=1to6:readec(x):next
  21. 300 data 3,4,8,10,14,14
  22. 310 forx=0to7:reads(x):next
  23. 320 data 1,2,4,8,16,32,64,128
  24. 330 cc$=ho$:forx=1to25
  25. 340 cc$=cc$+chr$(17):next
  26. 350 printcl$ left$(cc$,12);
  27. 360 printye$ tab(12)"easter egg hunt!"
  28. 370 printgr$ tab(12) "----------------"
  29. 380 print:printre$
  30. 390 print tab(9 ) "find five easter eggs"
  31. 400 print
  32. 410 print tab(10) "as fast as you can!"
  33. 420 for x=832 to 1022 : read y
  34. 430 pokex,y:nextx:pokev+16,0
  35. 440 gosub 2060
  36. 450 poke2040,15:poke2041,14
  37. 460 forx=2042to2047:pokex,13:next
  38. 470 rem sprite colors
  39. 480 pokev+39,6 :rem eye
  40. 490 pokev+40,11:rem basket
  41. 500 pokev+41,1:rem eye
  42. 510 printcl$
  43. 520 printho$ rv$ re$ "ready..." ro$;
  44. 530 print"           "
  45. 540 pokev+21,0
  46. 550 printho$
  47. 560 forx=41 to 840 : r=fnr(10)
  48. 570 print mid$(bc$,r,1) rv$ " ";
  49. 580 next:print
  50. 590 printchr$(30):forx=1to40
  51. 600 printchr$(168);:next
  52. 610 forx=1to39:printchr$(166);:next
  53. 620 poke 2023,102:poke56295,5
  54. 630 gosub 1730
  55. 640 pokev+2,96:pokev+3,221:rem basket
  56. 650 printleft$(cc$,24);
  57. 660 printtab(9)rv$ye$"   ";
  58. 670 pokev+21,2
  59. 680 printho$ rv$ bl$ "get set..."
  60. 690 poke v,200:pokev+1,215:rem eye
  61. 700 poke v+4,204:pokev+5,222:rem eye
  62. 710 ye=215:xe=200
  63. 720 pokev+21,255
  64. 730 forx=7to15step2
  65. 740 pokev+x,fnr(145)+60
  66. 750 next
  67. 760 forx=3to7
  68. 770 xp=fnr(250)+25
  69. 780 ifxp<255then810
  70. 790 pokev+x*2,xp-255
  71. 800 pokev+16,(peek(v+16)ors(x)):goto820
  72. 810 pokev+x*2,xp:pokev+16,peek(v+16)and255-s(x)
  73. 820 next
  74. 830 ifpeek(v+30)<>5then730
  75. 840 forx=v+42tov+46
  76. 850 pokex,ec(fnr(6)):next
  77. 860 pokev+21,255
  78. 870 forx=1to240-20*df:pokev+27,0:pokev+27,248:next
  79. 880 printho$ "                   "
  80. 890 ti$="000000":gosub2280
  81. 900 rem loop
  82. 910 printho$ bk$ tab(33) ti
  83. 920 printho$ re$ "eggs: "sc
  84. 930 ifsc=5then1780
  85. 940 j=31-(peek(56320)and31)
  86. 950 ifj=0then900
  87. 960 fb=jand16:iffbthenj=abs(16-j)
  88. 970 ff=1:if fb then ff=4
  89. 980 onjgosub1010,1020,1000,1030,1040,1050,1000,1060,1070,1080
  90. 990 goto1090
  91. 1000 return:rem null
  92. 1010 ye=ye-in*ff:return
  93. 1020 ye=ye+in*ff:return
  94. 1030 xe=xe-in*ff:return
  95. 1040 xe=xe-in*ff:ye=ye-in*ff:return
  96. 1050 xe=xe-in*ff:ye=ye+in*ff:return
  97. 1060 xe=xe+in*ff:return
  98. 1070 xe=xe+in*ff:ye=ye-in*ff:return
  99. 1080 xe=xe+in*ff:ye=ye+in*ff:return
  100. 1090 if ye<52thenye=52
  101. 1100 if ye>204thenye=204
  102. 1110 if xe>322thenxe=322
  103. 1120 if xe<20thenxe=20
  104. 1130 poke v+1,ye:pokev+5,ye+7
  105. 1140 ifxe>255then1190
  106. 1150 pokev,xe:pokev+16,peek(v+16)and254
  107. 1160 ifxe+4>255then1180
  108. 1170 pokev+4,xe+4:pokev+16,peek(v+16)and251:goto1210
  109. 1180 pokev+4,xe+4-255:pokev+16,peek(v+16)or4:goto1210
  110. 1190 pokev,xe-255:pokev+16,peek(v+16)or1
  111. 1200 pokev+4,xe+4-255:pokev+16,peek(v+16)or4:goto1210
  112. 1210 rem find egg?
  113. 1220 ck=peek(v+30):pokev+30,0
  114. 1230 if ck=5 or ck=0 then 900 :rem no
  115. 1240 s=0:pk=ck-5:forx=3to7
  116. 1250 ifpk=s(x)thens=x
  117. 1260 next
  118. 1270 ifpkand1then900
  119. 1280 ifs=0then900
  120. 1290 t3=peek(162):t2=peek(161):t1=peek(160)
  121. 1300 sy=peek(v+1+s*2)
  122. 1310 sx=peek(v+s*2)
  123. 1320 ifpeek(v+16)andpk=pkthensx=sx+254
  124. 1330 z=1:ifsx>100thenz=-1
  125. 1340 ifsx>300thensx=sx-255
  126. 1350 gosub2250
  127. 1360 forx=sxto100stepz*5:gosub1520
  128. 1370 ifx>255then1410
  129. 1380 pokesd+1,255-x:pokesd+4,17
  130. 1390 pokev+s*2,x:pokev+16,peek(v+16)and255-pk
  131. 1400 goto 1430
  132. 1410 pokev+s*2,x-255
  133. 1420 pokev+16,peek(v+16)orpk
  134. 1430 nextx
  135. 1440 forx=syto230step3:gosub1520
  136. 1450 pokesd+1,255-x:pokesd+4,17
  137. 1460 pokev+1+s*2,x:next
  138. 1470 pokev+21,peek(v+21)and255-pk:rem turn off
  139. 1480 sc=sc+1:poke162,t3:poke161,t2:poke160,t1
  140. 1490 poke sd+4,0
  141. 1500 pokev+27,248
  142. 1510 goto900
  143. 1520 rem flash eggs
  144. 1530 if x/4 <> int(x/4) then return
  145. 1540 ifkt=dfthenkt=1:pokev+27,0:return
  146. 1550 kt=kt+1:pokev+27,248-pk:return
  147. 1560 data 7,224,0,31,248,0,63,252,0,63
  148. 1570 data 252,0,31,248,0,7,224,0,0,0,0
  149. 1580 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  150. 1590 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  151. 1600 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  152. 1610 data 0,254,0,3,1,128,12,0,96,16
  153. 1620 data 0,16,32,0,8,64,0,4,64,0,4
  154. 1630 data 128,0,2,128,0,2,128,0,2,128
  155. 1640 data 0,2,96,0,12,223,255,246,128
  156. 1650 data 0,2,152,7,130,135,224,26,176
  157. 1660 data 15,130,135,128,26,128,63,2
  158. 1670 data 112,0,12,31,255,240,0,0,0,0,0
  159. 1680 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  160. 1690 data 0,255,0,3,0,192,4,60,32,8
  161. 1700 data 118,16,8,126,16,4,60,32,3,0
  162. 1710 data 192,0,255,0,0,0,0,0,0,0,0,0
  163. 1720 data 0,0,0,0,0,0,0,0,0,0,0,0,0
  164. 1730 rem reset links
  165. 1740 forq=217to242
  166. 1750 ifpeek(q)<128thenpokeq,peek(q)+128
  167. 1760 next:return
  168. 1770 forx=1to28:printchr$(192);:next:return
  169. 1780 rem game over
  170. 1790 sc=ti:pokev+21,2
  171. 1800 printho$ tab(33) "      "
  172. 1810 sys 49152:poke53280,15:poke53281,1
  173. 1820 printho$ left$(cc$,5) re$
  174. 1830 gosub 1730
  175. 1840 printtab(5)rv$chr$(176);:gosub1770
  176. 1850 printchr$(174)
  177. 1860 forx=1to9:printtab(5)rv$chr$(221);
  178. 1870 printro$;
  179. 1880 fory=1to28:print" ";:nexty
  180. 1890 printrv$chr$(221):nextx
  181. 1900 printtab(5)rv$chr$(173);:gosub1770
  182. 1910 printchr$(189)
  183. 1920 gosub1730
  184. 1930 print chr$(149) left$(cc$,7)
  185. 1940 ifsc<=hsthenhs=sc
  186. 1950 printtab(11)"game over":print
  187. 1960 printtab(8)"     score="sc
  188. 1970 printtab(8)"best score="hs
  189. 1980 print
  190. 1990 printtab(11)"press fire button to"
  191. 2000 printtab(11)"play again"
  192. 2010 waitj2,127,127:j=peek(j2)
  193. 2020 if jand16 then 2050
  194. 2030 sc=0:sys49214
  195. 2040 poke53280,7:poke53281,1:goto640
  196. 2050 pokev+21,0:printcl$:goto63000
  197. 2060 forx=49152to49289:readz:pokex,z:next:return
  198. 2070 data 32,124,192,162,0,189,0,4
  199. 2080 data 157,0,193,189,0,5,157,0
  200. 2090 data 194,189,0,6,157,0,195,189
  201. 2100 data 0,216,157,0,197,189,0,217
  202. 2110 data 157,0,198,189,0,218,157,0
  203. 2120 data 199,202,208,217,162,216,189
  204. 2130 data 0,7,157,0,196,189,0,219,157
  205. 2140 data 0,200,202,208,241,96,32,124
  206. 2150 data 192,162,0,189,0,193,157,0
  207. 2160 data 4,189,0,194,157,0,5,189
  208. 2170 data 0,195,157,0,6,189,0,197
  209. 2180 data 157,0,216,189,0,198,157,0
  210. 2190 data 217,189,0,199,157,0,218,202
  211. 2200 data 208,217,162,216,189,0,196,157
  212. 2210 data 0,7,189,0,200,157,0,219,202
  213. 2220 data 208,241,96,162,0,181,217
  214. 2230 data 9,128,149,217,232,224,25
  215. 2240 data 208,245,96
  216. 2250 rem sound setup
  217. 2260 pokesd+24,15:pokesd+5,192
  218. 2270 pokesd+6,250:pokesd+4,0:return
  219. 2280 rem shot
  220. 2290 pokesd+24,15:pokesd+5,9:pokesd+1,20:pokesd+4,128
  221. 2300 pokesd+6,0
  222. 2310 pokesd+4,129:return
  223. 63000 rem   connect back to loadstar
  224. 63005 iflf=0thenlf=1:load"routines v4",8,1
  225. 63010 print"[147]load"chr$(34)"payload"chr$(34)",8":print"run"
  226. 63020 poke631,13:poke632,13:poke198,2:end
  227.