home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
zzZACK64
/
zzZACK64_4_1992_-_de.d64
/
heros
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
10KB
|
295 lines
10 rem heros===============c64
20 rem (p) 7/87 commodore welt
30 rem =======================
40 rem (c) peter bergen v3.5
50 rem (v) a.mittelmeyer v2.0
60 rem
70 rem basic v2.0
80 rem c64
90 rem =======================
91 at=49152:re=49510:gosub92:goto100
92 if peek(49154)=174thenreturn
93 sys57812"sysmc",8,0:poke780,0
94 poke781,254:poke782,191
95 sys65493:return
100 poke53281,1:poke646,0
105 gosub2060:gosub2080
110 remgosub 2560:poke65298,0:poke65299,60:printbk$;:goto230
115 gosub 2560:printbk$;:goto230
120 l1$=gr$+"[193][195][193][195]"+gr$+"[194][196][194][196]"+bk$+"[197][198][197][198]"+lr$+z6$+z6$+z6$+z6$:goto950
130 l1$=br$+" [212] "+br$+"[208][209][210][211]"+br$+"[204][205][206][207]"+lr$+z6$+z6$+z6$+z6$:goto950
140 l1$=re$+zf$+zr$+zr$+zu$+lg$+"[199][200][200][201]"+lg$+"[199][200][202][203]"+lr$+z6$+z6$+z6$+z6$:goto950
150 l1$=wh$+" "+bk$+"[213][214][217] "+bk$+"[215][216] "+lr$+z6$+z6$+z6$+z6$:goto950
160 l1$=wh$+" "+wh$+" "+wh$+" "+re$+z1$+z1$+z1$+z1$:goto950
170 l1$=wh$+" "+wh$+" "+wh$+" "+bl$+z0$+z0$+z0$+z0$:goto950
180 l1$=wh$+" "+wh$+" "+wh$+" "+ye$+zl$+zl$+zl$+zl$:goto950
190 l1$=wh$+" "+wh$+" "+wh$+" "+g2$+zl$+zl$+zl$+zl$:goto950
200 l1$=wh$+" "+wh$+" "+wh$+" "+lr$+z6$+z6$+z6$+z6$:goto950
210 sysre:data53,10,70,3,103,5,76,5,57,5,90,10,66,5
220 sysre:data53,60,4,70,10,8,103,40,6,76,90,8,57,180,10,90,30,2,66,30,2,0,30,2
230 dimf%(20,40),h%(4,20),s%(3,5),d%(9),n$(3),l2$(4),l3$(4),fe%(20),q$(3)
240 a=rnd(-ti):q$(1)=zg$:q$(2)=zq$:q$(3)=z4$
250 fora=1to20:fe%(a)=1:next:poke53280,0:poke646,2
260 printchr$(147);:gosub1980:gosub1960:gosub1440
270 forsp=1to3:s%(sp,1)=hv:s%(sp,2)=hh:s%(sp,5)=1:s%(sp,3)=75:s%(sp,4)=50:next
280 ri=1:sp=1:z=600:gosub1850
290 gosub830:sp=2:s=8:lc=1344:gosub1610:sp=3:s=16:lc=1664:gosub1610:sp=1:s=0:lc=1024
300 ifri=2thengoto380
310 gosub450
320 ifz<1thengosub1610:goto760
330 poke56322,224:jo=peek(56320):poke56322,255
335 ifjo=123thens%(sp,1)=s%(sp,1)-1:gosub510:gosub830:goto570
340 ifjo=119thens%(sp,1)=s%(sp,1)+1:gosub530:gosub830:goto570
350 ifjo=111thenri=2:goto380
360 ifjo=109thengosub1390
370 goto320
380 gosub470
390 ifz<1thengosub1610:goto760
400 poke56322,224:jo=peek(56320):poke56322,255
405 ifjo=123thens%(sp,2)=s%(sp,2)-1:gosub510:gosub830:goto570
410 ifjo=119thens%(sp,2)=s%(sp,2)+1:gosub530:gosub830:goto570
420 ifjo=111thenri=1:goto310
430 ifjo=109thengosub1390
440 goto390
450 gosub490:gosub500:gosub830:gosub550:sysat,0,s:printre$rn$"west-ost"rf$;
460 gosub750:return
470 gosub490:gosub500:gosub830:gosub550:sysat,0,s:printre$rn$"sued-nord"rf$;
480 gosub750:return
490 sysat,0,s:forii=1to7:print" ":next:sysat,0,s:return
500 sysat,12,s+6:printrn$re$z8$yq$z8$yq$rf$;:return
510 fora=1to4:l3$(a)=mid$(l2$(a),1,1):next
520 forb=5to2step-1:gosub560:next:return
530 fora=1to4:l3$(a)=mid$(l2$(a),6,1):next
540 forb=6to11:gosub560:next:return
550 c=1:fora=s+2tos+5:sysat,0,a:printmid$(l2$(c),6,35):c=c+1:next:return
560 c=1:fora=s+2tos+5:sysat,0,a:printl3$(c);:print;mid$(l2$(c),b,35):c=c+1:next:return
570 gosub220:v=s%(sp,1):h=s%(sp,2):ifv<1orv>20orh<1orh>40theny=1:goto1770
580 fora=1to8:readb:readc:readkr:iff%(v,h)=bthenzr=c
590 next:ifs%(sp,4)<0thengoto610
600 kr=kr+int(((s%(sp,4)/s%(sp,5))/50)+.5)
610 iff%(v,h)=53thengosub1040
620 iff%(v,h)=70andsp<>1theny=3:goto1770
630 iff%(v,h)=70thenzr=zr*s%(sp,5)
640 iff%(v,h)=12ands%(sp,5)>1theny=4:goto1770
650 iff%(v,h)=57andsp=2thenzr=int(zr/3)
660 iff%(v,h)=10theny=5:goto1770
670 iff%(v,h)=0thengosub1300
680 iff%(v,h)=66thengosub1130
690 s%(sp,3)=s%(sp,3)-kr:ifs%(sp,3)<0thensysat,29,s+5:y=2:goto1770
700 ifne=1thenne=0:gosub730
710 z=z-zr:gosub750:gosub810
720 ifri=1then320
721 goto390
730 ifri=1thengosub450:goto740
731 gosub470
740 gosub750:return
750 sysat,12,s:printre$rn$right$(" "+str$(z),3):return
760 ifsp=1thensp=2:s=8:lc=1344:ri=1:z=600:gosub830:goto300
770 ifsp=2thensp=3:s=16:lc=1664:ri=1:z=600:gosub830:goto300
780 gosub1940:gosub1670:gosub1950:gosub1920
790 sp=1:s=0:lc=1024:gosub1610:sp=2:s=8:lc=1344:gosub1610:sp=3:s=16:lc=1664:gosub1610
800 sp=1:s=0:lc=1024:ri=1:z=600:gosub830:goto300
810 sysat,29,s+5:print" ";:fora=29to29+int(s%(sp,3)/10)
820 sysat,a,s+5:printre$"*";:next:return
830 ifri=1thengosub960:goto840
831 gosub1000
840 fora=1to4:l2$(a)="":next
850 fora=1to9
860 ifd%(a)=53then120
870 ifd%(a)=57then130
880 ifd%(a)=66then140
890 ifd%(a)=0then150
900 ifd%(a)=10then160
910 ifd%(a)=70then170
920 ifd%(a)=103then180
930 ifd%(a)=12then190
940 ifd%(a)=13then200
950 forb=1to4:l2$(b)=l2$(b)+mid$(l1$,5*b-4,5):next:next:return
960 b=1:fora=s%(sp,1)-4tos%(sp,1)+4
970 ifa<1ora>20thend%(b)=10:goto990
980 d%(b)=f%(a,s%(sp,2))
990 b=b+1:next:return
1000 b=1:fora=s%(sp,2)-4tos%(sp,2)+4
1010 ifa<1ora>40thend%(b)=10:goto1030
1020 d%(b)=f%(s%(sp,1),a)
1030 b=b+1:next:return
1040 z1=int(rnd(1)*3):ifz1<>1orsp=3thenreturn
1050 fora=1to20:next:z2=int(rnd(1)*10)+1
1060 gosub490:printre$"woelfe greifen sie an!"
1070 print"waehlen sie zwischen:":print:print"li=kampf":print"re=opfer"
1080 poke56322,224:jo=peek(56320):poke56322,255
1085 ifjo=123thens%(sp,3)=s%(sp,3)-z2*2:ne=1:gosub1900:return
1090 ifjo=119thens%(sp,4)=s%(sp,4)-(z2*10):gosub1110:ne=1:gosub1900:return
1100 goto1080
1110 ifs%(sp,4)<1theny=6:goto1770
1120 return
1130 rem
1140 fora=1to20:ifs%(sp,1)=h%(1,a)ands%(sp,2)=h%(2,a)thenhk=a
1150 next
1160 gosub490:printre$"im haus finden sie vor:"
1170 gosub1290:s%(sp,5)=s%(sp,5)+h%(3,hk):pu=pu+h%(3,hk):h%(3,hk)=0
1180 hb=h%(4,hk)/10:sb=s%(sp,4)/10:j=0:gosub1210
1190 h%(4,hk)=h%(4,hk)-j*10:s%(sp,4)=s%(sp,4)+j*10:gosub490:gosub1900:gosub1920
1200 ne=1:return
1210 sysat,0,s+5:print"re=> / li=< / fire=annahme";:gosub1280
1220 poke56322,224:jo=peek(56320):poke56322,255
1225 ifjo=119thenj=j+1:gosub1260
1230 ifjo=123thenj=j-1:gosub1270
1240 ifjo=111thengosub1900:return
1250 goto1220
1260 ifj>hbthenj=j-1:return
1270 ifj<-sbthenj=j+1:return
1280 sysat,11,s+6:printright$(" "+str$(j),4):return
1290 printh%(3,hk);"personen":printh%(4,hk)/10;"kg nahrungsmittel":return
1300 fora=1to20:next
1310 pg=pg+s%(sp,5)-1:pu=pu-s%(sp,5)+1:s%(sp,5)=1:gosub1900:gosub1920
1320 ifpg=ptthengoto1800
1330 gosub490:print;"kurs: w/o=";s%(sp,1);"# s/n=";s%(sp,2)
1340 sysat,0,s+2:print"neuer kurs west/ost:";:sb=-1:hb=20:j=1:gosub1210:fora=1to100:next
1350 a=j:sysat,0,s+2:print"neuer kurs sued/nord";:hb=40:j=1:gosub1210:b=j
1360 iff%(a,b)=66orf%(a,b)=10theny=7:goto1770
1370 f%(s%(sp,1),s%(sp,2))=13:f%(a,b)=0
1380 ne=1:z=0:return
1390 rem
1400 gosub490:print"wieviel nahrung soll":print"verbraucht werden?"c4$
1410 hb=s%(sp,4)/10:sb=-0:j=0:gosub1210
1420 s%(sp,3)=s%(sp,3)+int((j*10/s%(sp,5))+.5):ifs%(sp,3)>90thens%(sp,3)=90
1430 s%(sp,4)=s%(sp,4)-j*10:z=z-30:gosub1900:gosub810:gosub730:gosub750:return
1440 fora=1to20:forb=1to40:f%(a,b)=13:next:next
1450 vh=15:l=5:forb=2to40:gosub1540
1460 fora=z2to(z2+z3):f%(a,b)=z4:next:next
1470 vh=32:l=8:fora=1to20:gosub1540
1480 forb=z2to(z2+z3):f%(a,b)=z4:next:next
1490 f%(hv,hh)=0:fora=1to20
1500 h%(1,a)=int(rnd(1)*20)+1:h%(2,a)=int(rnd(1)*40)+1
1510 iff%(h%(1,a),h%(2,a))=0thengoto1500
1520 f%(h%(1,a),h%(2,a))=66
1530 h%(3,a)=int(rnd(1)*5)+2:pt=pt+h%(3,a):h%(4,a)=int(rnd(1)*20)*10+100:next:return
1540 z1=int(rnd(1)*2)+1:ifz1=0thenreturn
1550 z2=int(rnd(1)*vh)+1:z3=int(rnd(2)*l)+1:z4=int(rnd(1)*7)+1
1560 ifz4=1orz4=6orz4=7thenz4=53:return
1570 ifz4=2thenz4=70:return
1580 ifz4=3thenz4=103:return
1590 ifz4=4thenz4=12:return
1600 ifz4=5thenz4=57:return
1610 gosub490:fora=s%(sp,1)-3tos%(sp,1)+3:forb=s%(sp,2)-10tos%(sp,2)+10
1620 ifa<1ora>20orb<1orb>40thenpokelc+54272,10:pokelc,160:goto1640
1630 pokelc+54272,f%(a,b):pokelc,160
1640 lc=lc+1:next:lc=lc+19:next
1650 poke646,6:sysat,24,s+1:print"w";:sysat,24,s+2:print"i";:sysat,22,s+3:print"s-*-n";
1660 sysat,24,s+4:print"i";:sysat,24,s+5:print"o";:sysat,10,s+3:printbk$"*";:return
1670 fora=1to20:dz=1:forb=1to4:df=fe%(a):gosub210
1680 ifdf>40thendf=40
1690 iff%(a,df)=66thengosub1750
1700 forc=1to3:ifa=s%(c,1)anddf=s%(c,2)theny=8:goto1770
1710 next:iff%(a,df)=0theny=9:goto1770
1720 forc=1to7:readda:readdb:iff%(a,df)=dathendz=dz+db
1730 next:ifdz>9thenfe%(a)=fe%(a)+1:f%(a,df)=10:dz=dz-9
1740 next:next:return
1750 fore=1to20:ifa=h%(1,e)anddf=h%(2,e)andh%(3,e)>0theny=10:goto1770
1760 next:return
1770 fora=500to10step-20:next
1780 printchr$(147);:print;c4$c4$c4$c3$c3$re$"leider scheiterte ihr einsatz! (";y;")"
1790 gosub1920:goto1820
1800 rem
1810 printchr$(147);:sysat,8,3:printre$fl$"sie haben es geschafft!"fo$;:gosub1920
1820 sysat,14,6:print"fire = start";
1830 poke56322,224:jo=peek(56320):poke56322,255
1835 ifjo=111thenprintchr$(147);:run
1840 goto1830
1850 aa=1063
1855 fora=0to24:sysat,0,a:printrn$bk$" "rf$;
1856 pokeaa,160:pokeaa+54272,0:aa=aa+40:next
1860 forb=0to22step8:fora=btob+6:sysat,0,a:print" ";
1870 printn$+" "+rf$+" ";:next:next
1880 poke646,6:b=1:fors=0to22step8:poke646,6:sysat,30,s:printn$(b);:gosub1900
1890 sysat,29,s+5:printre$"********";:sysat,30,s+6:printq$(b);:b=b+1:next:s=0:gosub1920:return
1900 sysat,30,s+2:printbl$"p:"right$(" "+str$(s%(sp,5)),4)
1910 sysat,30,s+3:print"n:"right$(" "+str$(int(s%(sp,4)/10)),4):return
1920 gosub1950:sysat,0,24:printre$"gesamt:";pt;" gefunden:";pu;" gerettet:";pg;c2$
1930 return
1940 sysat,0,24:printre$" in der nacht brennt das feuer weiter!"c2$;:return
1950 sysat,0,24:print" "c2$;:return
1960 printchr$(147);:printc4$c4$,c1$c1$c1$"ihr hubschrauber landet.",,c4$c4$fl$c3$c3$;
1970 print"bitte warten!"fo$:return
1980 fora=1to3
1990 printc4$c4$"name des";a;".spielers":gosub2050
2000 iflen(n$(a))>10thenprintc4$c4$fl$"zu lang!"fo$:goto1990
2010 next:printc4$c4$"landekoordinaten:"
2020 printc4$"west / ost (1-20)";:inputhv:printc4$"sued / nord (1-40)";:inputhh
2030 ifhv<1orhv>20orhh<1orhh>40thengoto2020
2040 return
2050 printc2$left$(qr$,20);:inputn$(a):return
2060 printchr$(147);:sysat,15,5:print"h e r o s";
2070 sysat,8,8:print"drei gegen das inferno";:return
2080 gosub2170
2100 readc:ifc=-1thenreturn
2110 fora=0to7:readb:pokec*8+2048+a,b:next:goto2100
2140 sysre:data162,0,189,0,208,157,0,60,189,0
2150 data209,157,0,61,189,0,210,157,0,62
2160 data189,0,211,157,0,63,202,208,229,96
2170 sysre:data65,0,0,3,13,14,53,59,111
2180 data66,122,87,53,55,74,62,13,3
2190 data67,0,96,80,222,238,187,173,119
2200 data68,189,215,181,254,238,184,104,224
2210 data69,1,5,3,1,1,1,3,3
2220 data70,224,192,192,192,192,192,224,240
2230 data71,31,25,25,31,25,25,31,31
2240 data72,255,57,57,255,57,57,255,255
2250 data73,248,56,56,248,56,56,248,248
2260 data74,252,60,60,252,63,60,252,252
2270 data75,24,24,24,24,24,24,24,24
2280 data76,21,31,47,59,95,125,175,255
2290 data77,237,239,247,246,251,251,253,253
2300 data78,255,255,223,255,255,255,191,255
2310 data79,224,240,240,248,248,252,254,255
2320 data80,0,0,0,0,3,5,11,15
2330 data81,1,2,3,5,7,138,207,215
2340 data82,254,255,191,255,223,255,255,127
2350 data83,0,0,0,128,128,192,192,224
2360 data84,0,0,0,48,120,188,252,222
2370 data85,63,0,0,3,4,8,8,9
2380 data86,255,24,24,255,53,53,127,255
2390 data87,15,15,15,7,1,2,70,63
2400 data88,255,255,254,252,240,16,25,254
2410 data89,243,3,7,255,255,255,192,0
2420 data101,0,0,0,253,254,19,15,3
2430 data108,64,64,64,64,64,64,64,64
2440 data97,24,48,120,255,255,255,255,255
2450 data112,0,1,3,5,15,23,29,127
2460 data103,85,170,170,255,255,255,255,255
2470 data113,16,52,118,247,8,255,255,126
2480 data118,120,255,255,255,255,255,255,255
2490 data123,60,36,60,36,60,36,60,36
2500 data121,12,12,140,255,255,140,12,12
2510 data124,0,255,119,221,255,119,221,255
2520 data127,0,128,64,224,208,120,220,254
2530 data98,17,33,48,25,26,113,119,254
2540 data-1
2550 rem nachspann ===========
2560 rem farbcodes/steuercodes
2570 wh$=chr$(005):c4$=chr$(017)
2580 rn$=chr$(018):re$=chr$(028)
2590 c3$=chr$(029):gr$=chr$(030)
2600 bl$=chr$(031):fl$=chr$(130)
2610 fo$=chr$(132):bk$=chr$(144)
2620 c2$=chr$(145):rf$=chr$(146)
2630 br$=chr$(149):lr$=chr$(153)
2640 g2$=chr$(152):lg$=chr$(153)
2650 c1$=chr$(157):ye$=chr$(158)
2660 rem zeichensatz/graphik
2670 z0$=chr$(161):z1$=chr$(162)
2680 z4$=chr$(165):z6$=chr$(167)
2690 z8$=chr$(169):zf$=chr$(176)
2700 zg$=chr$(177):zl$=chr$(182)
2710 zq$=chr$(187):zr$=chr$(188)
2720 zu$=chr$(191):yq$=chr$(223)
2730 rem ***** zeichenfolgen
2740 for q=1 to 40
2750 qr$=qr$+c3$
2760 next q
2770 return
2780 rem =========================
2790 rem p r o g r a m m e n d e
2800 rem =========================