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