home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
zzZACK64
/
zzZACK64_2_1992_-_de.d64
/
seeschlacht
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
14KB
|
465 lines
1 onlgoto115,125,3263,3264,3265,3273,3274,3275
2 ifa=0thenprint"[147]bitte warten":a=1:load"char",8,1
3 ifa=1thena=2:load"joyst.",8,1
10 dimcs(9,9),cb(9,9),ss(9,9),sb(9,9),m$(21)
15 poke53280,11:poke53281,6:print"":mu$="==========[146]":poke650,64
20 goto100
21 sc=2:gosub130:kx=2:gosub575:gosub580:kx=17
22 gosub750:sc=2:gosub130:gosub160:goto15
100 rem ******* init *********
101 fori=0to9:fort=0to9:cs(i,t)=0:cb(i,t)=0:ss(i,t)=0:sb(i,t)=0:nextt:nexti
102 l$="":fori=0to23:poke54272+i,0:next:s=54272:fori=1to40:l$=l$+" ":next:fi=0
104 pokes+24,15:goto111:
105 goto120
106 goto21
110 rem ******* load bild ******
111 l=1:load"bild",8,1
115 goto105
120 rem ****** load farbe ******
122 l=2:load"farbe",8,1
125 goto106
130 rem ******* bildschirm wahl *****
133 ifsc=1thenpoke648,4:poke56576,199:poke53272,(peek(53272)and241)or4:return
135 ifsc=2thenpoke648,196:poke56576,196:poke53272,19:return
136 reurn
140 rem ******* cursor pos ******
141 poke211,cx:poke214,cy:sys58732:return
160 rem *****spiel routine*****
161 cb=5:sb=5:t=0:cs=0:ss=0:as=0:ac=0:fl=1:fs=0:xf=1:yf=1:x=int(rnd(1)*10)
162 y=int(rnd(1)*10):a$="[255]feind in sicht.der tanz beginnt...":gosub541:am=10
163 a$="[255]":gosub541:kx=2:f1=0:f2=0:f3=0:f4=0:f5=0:gosub3351
165 gosub501:ss=ss+1:gosub3352:w=233:gosub3000:ifcb(ax,ay)=2thent=1:gosub3005
166 gosub801:ift=0thenw=6:gosub3041
167 ift=1thenas=as+1:ifas=3thenas=0:cb=cb-1
168 ifcb=0thengosub5050:gosub3390:goto3260
169 ifss=101thengosub3400:return
170 ift=1thent=0:goto165
173 gosub220:cs=cs+1:w=133:gosub3000:ifsb(x,y)=2thent=1:fs=1:gosub3024
175 ift=1thenac=ac+1:gosub3302:ifac=3thenac=0:sb=sb-1:fs=0:xf=1:yf=1:fl=1
177 ifsb=0then3360
180 ift=1thent=0:cs(x,y)=2:goto173
183 cs(x,y)=1:t=0:w=15:gosub3041:goto165
185 rem ----------------------------
220 remc64 - schuss *****
225 iffs=1then255
230 x=x+2
235 ifx=10thengosub240:goto238
236 ifx=11thengosub245:goto238
238 ifcs(x,y)<>0thenx=x+1:goto235
239 return
240 x=1:y=y+1:ify>9theny=0:return
241 return
245 x=0:y=y+1:ify>9theny=0:return
246 return
250 rem *****specialroutine*****
255 iffl=1thengosub261
256 x=xh:y=yh:ifac=2then270
260 goto281
261 xh=x:yh=y:fl=0:return
265 rem ***x/y routinen***
270 ifrm$="x"thenyf=0:goto281
271 xf=0:goto313
280 rem ***x+1***
281 rm$="x":ifx+1>9then289
283 ifcs(x+1,y)<>0then289
285 x=x+1:return
287 rem ***x-1***
289 ifx-1<0then297
291 ifcs(x-1,y)<>0then297
293 x=x-1:return
295 rem ***x+2***
297 ifx+2>9then305
299 ifcs(x+2,y)<>0then305
301 x=x+2:return
303 rem ***x-2***
305 ifx-2<0then313
307 ifcs(x-2,y)<>0then313
309 x=x-2:return
311 rem ---y+1---
313 rm$="y":ify+1>9then321
315 ifcs(x,y+1)<>0then321
317 y=y+1:return
319 rem ---y-1---
321 ify-1<0then329
323 ifcs(x,y-1)<>0then329
325 y=y-1:return
327 rem ---y+2---
329 ify+2>9then337
331 ifcs(x,y+2)<>0then337
333 y=y+2:return
335 rem ---y-2---
337 ify-2<0thenfs=0:xf=1:fl=1:goto230
339 ifcs(x,y-2)<>0thenfs=0:xf=1:fl=1:goto230
341 y=y-2:return
500 rem ***** cursor spiel ******
501 goto517
502 sys49152:rem joystick
505 ifpeek(780)=1then526
506 ifpeek(780)=0then529
507 ifpeek(780)=2then532
508 ifpeek(780)=3then535
509 ifpeek(780)=4thenfi=1:gosub519:return
515 goto501
516 rem ausfuehren der bewegung
517 cx=ax+kx:cy=ay+13:gosub141:print"\[146]";:goto502
518 rem ****** alt *****
519 cx=ax+kx:cy=ay+13:gosub141:ifss(ax,ay)=0thenprint"[255]":gosub561:return
520 ifss(ax,ay)=1thenprint"*[146]":return
521 print"&[146]":return
525 rem ***** ab ******
526 ifay+1>9then501
527 gosub519:ay=ay+1:goto517
528 rem *****auf *****
529 ifay-1<0then501
530 gosub519:ay=ay-1:goto517
531 rem ***** links *****
532 ifax-1<0then501
533 gosub519:ax=ax-1:goto517
534 rem ***** rechts*****
535 ifax+1>9then501
536 gosub519:ax=ax+1:goto517
540 rem **** ausgabe routine *****
541 print" ";:ifleft$(a$,1)="[255]"thengosub566:a$=right$(a$,len(a$)-1):print" ";
545 forqq=1tolen(a$):print"[157]"mid$(a$,qq,1)"[146] ";:gosub555:nextqq:print"[157] [146]";
546 return
550 rem ***** ausgabe sound *****
555 gh=10:gl=30:ifmid$(a$,qq,1)<>" "thengl=50:gh=70
556 pokes+24,15:pokes+5,10:pokes+6,95:pokes+4,16:pokes,gl:pokes+1,gh:pokes+4,27:return
560 rem ***** sound bei joyst.*****
561 pokes+5,10:pokes+6,140:pokes+4,16:pokes,120:pokes+1,15:pokes+4,27:return
565 rem ****** textschirm clr *********
566 print"";:forqq=1to9:print""l$"[146]";:next:print"";:return
570 rem ****** anfangs text ********
571 data"[255] --- seeschlacht --- "
572 data"written by christian berg in 1987"
575 restore:fori=1to2:reada$:gosub541:next:gosub3214:return
580 rem ******* schiffe setzen ******
581 a$="[255]bitte geben sie ihren namen ein:":gosub3221
583 gosub541:print:ls=10:gosub2070:n$=x$:rem check hi score
585 a$="[255]hauptquartier an flottenkommandant: ":gosub541:print;
586 a$=" wir registrieren mit besorgnis wachsendefeindes aktivitaeten im "+ot$
587 a$=a$+" ":gosub541:cx=0:cy=3:gosub141
588 a$="sie haben den befehl mit ihrer flotte fuer ordnung zu"
590 gosub541:a$="sorgen.":gosub541
591 getw$:ifw$=""then591
592 ifw$="q"then610
593 a$="[255]unter ihrem kommando stehen: ein ubootjaeger"
594 gosub541:print:a$=" ein flugzeugtraeger":gosub541:print;
595 a$=" ein unterseeboot":gosub541:print
596 a$=" ein schlachtschiff"
597 gosub541:print;:a$=" ein schnellboot":gosub541
600 print:a$="die betroffenen einheiten sind alarmiertund in bereitschaft gesetzt."
602 gosub541:poke198,0:wait198,1:a$="[255]bitte weisen sie ihren einheiten":gosub541
604 a$="ihre positionskoordinaten zu.":gosub541:print:print:sb=0
605 a$=" viel glueck."
606 gosub541:poke198,0:wait198,1
610 kx=17:a$="[255]ubootjaeger an flottenkommandant: ":gosub541:f=1:gosub3281
613 a$=" wir bitten um zuweisung der koordinaten.":gosub541:ax=0:ay=0:rm$="u"
615 gosub3100:cx=0:cy=4:gosub141
617 a$="senkrecht oder waagerecht":gosub541:print
619 getw$:ifw$=""then619
620 ifw$="s"then630 :rem senkr.
621 ifw$="w"then640 :rem waager.
623 goto619
630 rem **** senkrecht ****
631 ifay+2>9thena$="kurs ist nicht moeglich.":gosub541:goto610
633 sb(ax,ay)=2:sb(ax,ay+1)=2:sb(ax,ay+2)=2
635 rem ausgeben
637 a$="aye aye sir.gehen auf kurs":gosub541:sb=1
638 goto660
640 rem ***** waagerecht *******
642 ifax+2>9thena$="..das ist nicht moeglich.":gosub541:poke198,0:wait198,1:goto610
645 sb(ax,ay)=2:sb(ax+1,ay)=2:sb(ax+2,ay)=2:a$="aye aye sir.steuern kurs"
650 gosub541:sb=1
660 ifw$="s"thenfori=1to2:gosub725:ay=ay+1:next:gosub725:ay=ay-2:gosub727
661 ifw$="w"thenfori=1to2:gosub725:ax=ax+1:next:gosub725:ax=ax-2:gosub727
664 rm$="f"
665 f=0:gosub3281:a$="[255]flugzeugtraeger an flottenkommandant: ":gosub541:sb=2
666 f=1:gosub3283
670 a$="[157]erbitten unsere koordinaten.":gosub541:gosub3100:cy=5:cx=0:gosub141
675 gosub3100:cy=5:cx=0:gosub141:a$="kurs senkrecht oder waagerecht":gosub541
676 getw$:ifw$=""then676
677 ifw$="s"thengosub702:ift=0thengosub3292:goto681
678 ifw$="w"thengosub710:ift=0thengosub3292:goto681
679 ift=1thent=0:onsb-1goto665,684,686,687
680 goto676
681 ifw$="s"thenfori=1to2:gosub725:ay=ay+1:next:gosub725:ay=ay-2:gosub727
682 ifw$="w"thenfori=1to2:gosub725:ax=ax+1:next:gosub725:ax=ax-2:gosub727
683 f=1:sb=sb+1:ifsb=6thenreturn
684 ifsb=3thena$="[255]unterseeboot an kommandant":gosub541:f=1:gosub3285:rm$="b"
685 ifsb=3thena$=left$(l$,13)+"erbitten positionskoordinaten":gosub541:goto675
686 ifsb=4thena$="[255]schlachtschiff bittet um koordinaten.":gosub541:goto3295
687 ifsb=5thena$="[255]schnellboot bittet um koordinaten":gosub541:goto3297
700 rem senk/waage
701 rem senk
702 t=0:ifay+2>9thent=1:return
703 ifsb(ax,ay)<>0thent=1:return
704 ifsb(ax,ay+1)<>0thent=1:return
705 ifsb(ax,ay+2)<>0thent=1:return
706 sb(ax,ay)=2:sb(ax,ay+1)=2:sb(ax,ay+2)=2:return
709 rem waage
710 t=0:ifax+2>9thent=1:return
711 ifsb(ax,ay)<>0thent=1:return
712 ifsb(ax+1,ay)<>0thent=1:return
713 ifsb(ax+2,ay)<>0thent=1:return
714 sb(ax,ay)=2:sb(ax+1,ay)=2:sb(ax+2,ay)=2:return
720 rem ***** koordinaten up to date
721 cx=ax+2:cy=ay+13:gosub141:ifcb(ax,ay)=0thenprint"*[146]":return
722 ifcb(ax,ay)=2thenprint"&[146]";:return
723 print"[255]":return
725 cx=17+ax:cy=ay+13:gosub141:ifsb(ax,ay)=2thenprint"&[146]":return
726 print"&[146]":return
727 ifrm$<>"u"then730
728 ifw$="s"thenfori=0to2:ux(i+1)=ax:uy(i+1)=ay+i:next:return
729 ifw$="w"thenfori=0to2:ux(i+1)=ax+i:uy(i+1)=ay:next:return
730 ifrm$<>"f"then733
731 ifw$="s"thenfori=0to2:fx(i+1)=ax:fy(i+1)=ay+i:next:return
732 ifw$="w"thenfori=0to2:fx(i+1)=ax+i:fy(i+1)=ay:next:return
733 ifrm$<>"b"then736
734 ifw$="s"thenfori=0to2:bx(i+1)=ax:by(i+1)=ay+i:next:return
735 ifw$="w"thenfori=0to2:bx(i+1)=ax+i:by(i+1)=ay:next:return
736 ifrm$<>"s"then739
737 ifw$="s"thenfori=0to2:sx(i+1)=ax:sy(i+1)=ay+i:next:return
738 ifw$="w"thenfori=0to2:sx(i+1)=ax+i:sy(i+1)=ay:next:return
739 ifw$="s"thenfori=0to2:px(i+1)=ax:py(i+1)=ay+i:next:return
740 ifw$="w"thenfori=0to2:px(i+1)=ax+i:py(i+1)=ay:next:return
741 return
750 rem ***** computer setzt schife **
751 sz=1:aa=0:cb=0:x=int(rnd(1)*2):ifx=1thengosub3231:aa=1:cb=5:return
752 gosub781:ifnotcb=5thenonz+1gosub786,791
753 ift=1thent=0
756 ifnotcb=5then752
760 return
780 rem auswahl
781 x=int(rnd(1)*8):y=int(rnd(1)*8):z=int(rnd(1)*2):return
783 cb(x,y)=2:cb(x+1,y)=2:cb(x+2,y)=2:cb=cb+1:return:rem waage
784 cb(x,y)=2:cb(x,y+1)=2:cb(x,y+2)=2:cb=cb+1:return:rem senk
785 rem check senk
786 ifcb(x,y)<>0thent=1:return
787 ifcb(x,y+1)<>0thent=1:return
788 ifcb(x,y+2)<>0thent=1:return
789 gosub784:t=0:return
790 rem waage
791 ifcb(x,y)<>0thent=1:return
792 ifcb(x+1,y)<>0thent=1:return
793 ifcb(x+2,y)<>0thent=1:return
794 gosub783:t=0:return
800 rem **** eintrag in ss-array***
801 ift=1thenss(ax,ay)=2:gosub721:cb(ax,ay)=0:return
802 ss(ax,ay)=1:gosub721:return
2070 rem ------ get------
2071 rem ls=max laenge von x-str.muss vorher angegeben werden
2075 w$="":x$="":hh$="":lx=0:print" ";
2080 getw$:ifw$=""then2080
2085 ifw$=chr$(13)thenprint"[157] ":return
2090 ifw$=chr$(20)andlx<>0 thenprint"[157]"w$" ";:gosub2110 :goto2080
2091 ifw$=chr$(20)then2080
2095 ifw$=""orw$="[145]"orw$=""orw$="[157]"orw$="[147]"orw$=""then2080
2100 iflx=lsthen2080
2105 x$=x$+w$:print"[157]"w$" ";:lx=lx+1:goto2080
2110 hh$="":fori=1tolen(x$)-1:hh$=hh$+mid$(x$,i,1):next:x$=hh$:lx=lx-1
2115 iflx=0thenx$="":return
2120 return
3000 pokes+6,05:rem schuss sp.
3001 pokes+0,0:pokes+1,116:pokes+5,45:pokes+22,100:pokes+23,w
3002 pokes+24,53:pokes+4,0:pokes+4,129:forj=1to15:pokes+0,j:next
3003 forj=1to1600:next:return
3005 pokes+6,0:rem treffer bei c64
3006 pokes+0,0:pokes+1,7:pokes+5,46:pokes+22,50:pokes+23,243
3007 pokes+24,53:pokes+4,0:pokes+4,129:forj=1to70:pokes+0,j:next
3008 forj=1to1300:next:pokes+22,0:return
3020 rem ----sound fuer treffer---
3024 q=0:pokes+5,19:pokes+6,187:pokes+22,95:pokes+23,255:gosub5080
3026 pokes+24,31:ifq=30thenq=25
3028 pokes+1,18:pokes,4:q=q+1:ifq=40then3036
3030 pokes+4,129:fori=1to03:next:pokes,12
3032 pokes+4,128:fori=1to04:next
3034 goto3028
3036 return
3040 rem wasser
3041 pokes+0,0:pokes+1,40:pokes+5,10*16+12:pokes+22,0:pokes+23,0
3042 pokes+24,w:pokes+4,0:pokes+4,129:forj=1to255:pokes+0,j:next
3043 forq=1to2000:next
3044 return
3100 rem ***** cursor spiel ******
3102 goto3120
3104 sys49152:rem joystick
3106 ifpeek(780)=1then3132
3108 ifpeek(780)=0then3138
3110 ifpeek(780)=2then3144
3112 ifpeek(780)=3then3150
3114 ifpeek(780)=4thenfi=1:gosub3124:return
3116 goto3102
3118 rem ausfuehren der bewegung
3120 cx=ax+kx:cy=ay+13:gosub141:print"\[146]";:goto3104
3122 rem ****** alt *****
3124 cx=ax+kx:cy=ay+13:gosub141:ifsb(ax,ay)=0thenprint"[255]":gosub561:return
3126 ifsb(ax,ay)=1thenprint"*[146]":return
3128 print"&[146]":return
3130 rem ***** ab ******
3132 ifay+1>9then3102
3134 gosub3124:ay=ay+1:goto3120
3136 rem *****auf *****
3138 ifay-1<0then3102
3140 gosub3124:ay=ay-1:goto3120
3142 rem ***** links *****
3144 ifax-1<0then3102
3146 gosub3124:ax=ax-1:goto3120
3148 rem ***** rechts*****
3150 ifax+1>9then3102
3152 gosub3124:ax=ax+1:goto3120
3200 q=0
3201 pokes+5,9:pokes+6,10:pokes+23,0:pokes+21,1 :pokes+22,1
3202 pokes+24,31:ifq=30thenq=25
3203 pokes+1,6:pokes,06:q=q+1:ifq=40then3207
3204 pokes+4,129:
3205 pokes+4,128:
3206 goto3203
3207 return
3210 rem *meere*
3211 data"atlantik","mittelmeer","roten meer","pazifik","indischen ozean"
3212 data"bering meer","golf von guinea"
3213 data"arabischen meer","labrador becken","schwarzen meer","golf von mexico"
3214 fori=1to11:readm$(i):next:return
3220 rem choose meer
3221 x=int(rnd(1)*10)+1:ifx=mthenx=x+1:ifx>11thenx=1
3222 ot$=m$(x)+".":m=x:return
3230 rem **** szenario wahl *****
3231 sz=int(rnd(1)*8)+1
3232 ifsz=sathensz=sz+1:ifsz>8thensz=1
3233 x$="szenario"+str$(sz)
3234 sa=sz:open1,8,2,x$+",s,r"
3236 fori=0to9:fort=0to9:input#1,x:cb(i,t)=x:nextt:nexti:close1:return
3240 close1:return
3241 rem ---lernen
3242 rem
3243 open1,8,15,"s:szenario"+str$(sz):close1
3245 open1,8,2,"szenario"+str$(sz)+",s,w"
3247 fori=0to9:fort=0to9
3248 print#1,sb(i,t):nextt:nexti:close1:return
3260 rem ---- spieler hat gewonnen
3261 ifsb>=3thengosub3242
3262 sc=1:gosub130:gosub5045:l=3:load"char 1",8,1
3263 l=4:print"":load"bild 1",8,1
3264 l=5:load"farbe 1",8,1
3265 sc=2:gosub130:cy=12:fori=8to1step-1:cy=cy+1:cx=14:gosub141:printn$(i):nexti
3266 cy=12:fori=8to1step-1:cy=cy+1:cx=23:gosub141:printp(i):next
3270 getw$:ifw$=""then3270
3271 sc=1:gosub130
3272 l=6:load"char",8,1
3273 l=7:load"bild",8,1
3274 l=8:load"farbe",8,1
3275 sc=2:gosub130:goto3376
3280 rem **status**
3281 forq=55769to55771:pokeq,f:next:forq=55808to55812:pokeq,f:next:return
3282 rem flugzeugtraeger
3283 forq=55888to55893:pokeq,f:next:forq=55928to55933:pokeq,f:next:return
3284 rem u-boot
3285 forq=55969to55970:pokeq,f:next:forq=56008to56012:pokeq,f:next:return
3286 rem schlachtschff
3287 forq=56048to56052:pokeq,f:next:forq=56088to56093:pokeq,f:next:poke56049,f
3288 return
3289 rem schnellboot
3290 forq=56129to56131:pokeq,f:next:forq=56169to56172:pokeq,f:next:return
3291 rem hilf
3292 f=0:onsb-1gosub3283,3285,3287,3290
3293 return
3294 rem hilf
3295 rm$="s":gosub3287:goto675
3296 rem hilf
3297 gosub3290:rm$="p":goto675
3300 rem **** schiffstyp feststellen
3302 iff1=1then3305
3303 forq=1to3:ifux(q)=xanduy(q)=ythengosub3325:return
3304 nextq
3305 iff2=1then3308
3306 forq=1to3:iffx(q)=xandfy(q)=ythengosub3328:return
3307 nextq
3308 iff3=1then3311
3309 forq=1to3:ifbx(q)=xandby(q)=ythengosub3331:return
3310 nextq
3311 iff4=1then3314
3312 forq=1to3:ifsx(q)=xandsy(q)=ythengosub3334:return
3313 nextq
3314 iff5=1thenreturn
3315 forq=1to3:ifpx(q)=xandpy(q)=ythengosub3337:return
3316 nextq
3317 return
3325 ifac=1thenf=8:gosub3281:return
3326 ifac=2thenf=2:gosub3281:return
3327 f=6:gosub3281:f1=1:return
3328 ifac=1thenf=8:gosub3283:return
3329 ifac=2thenf=2:gosub3283:return
3330 f=6:gosub3283:f2=1:return
3331 ifac=1thenf=8:gosub3285:return
3332 ifac=2thenf=2:gosub3285:return
3333 f=6:gosub3285:f3=1:return:rem u-boot
3334 ifac=1thenf=8:gosub3287:return
3335 ifac=2thenf=2:gosub3287:return
3336 f=6:gosub3287:f4=1:return:rem schlacht.
3337 ifac=1thenf=8:gosub3290:return
3338 ifac=2thenf=2:gosub3290:return
3339 f=6:gosub3290:f5=1:return
3350 rem munition
3351 cy=10:cx=8:gosub141:a$=left$(mu$,am+1)+"[146]"+left$(l$,10-am):printa$;:return
3352 ifss=10orss=20orss=30orss=40orss=50orss=60orss=70thenam=am-1:gosub3351:return
3353 ifss=80orss=90orss=100thenam=am-1:gosub3351:return
3354 return
3360 rem ***** spieler hat verloren sb=0
3361 pokes+23,0:pokes+22,0:a$="[255]an kommandant "+n$+" vom hq:":gosub541:print
3362 a$="sie haben in einem harten seegefecht alle schiffe verloren.":gosub541
3363 a$="doch sie konnten dem gegner mit"+str$(ss)+" schuss ":gosub541:a$=""
3365 ifcb=3thena$="einigen":goto3370
3366 ifcb<=2thena$="schweren":goto3370
3367 a$="geringen"
3370 gosub541:cx=0:cy=5:gosub141:a$="schaden zufuegen.":gosub541:print
3375 a$="sie erreichten"+str$(p)+" punkte":gosub541:poke198,0:wait198,1
3376 a$="[255]wollen sie in einem weiteren seegefecht auf punktejagd gehen j/n?"
3377 gosub541
3378 getw$:ifw$="j"thenrm$="j":sc=1:gosub130:goto15
3379 ifw$="n"thensc=1:gosub130:poke650,0:end
3380 goto3378
3385 rem punkte errechen
3390 p=(100-ss)*sb+cb:return
3400 rem **** keine munition mehr****
3401 a$="[255]hq an kommandant "+n$+":":gosub541:print
3403 a$="da sie unfaehig sind ein seegefecht zu fuehren sind sie vom dienst"
3404 gosub541:a$="suspendiert.":gosub541
3405 poke198,0:wait198,1:goto3376
3410 rem ******* hi-score ********
3460 rem --- einordnen ---
3461 ifp=<p(1)thenreturn
3464 fori=1to8:ifp>p(i)thennexti:
3467 i=i-1
3468 fort=1toi:n$(t)=n$(t+1):p(t)=p(t+1):next:p(i)=p:n$(i)=n$:gosub5021:return
3500 rem ----- c64 hat gewonnen ----
5000 rem --- load ----
5003 open2,8,2,"hi-score,s,r"
5006 fori=1to8:p(i)=0:n$(i)="":h$=""
5009 get#2,x$:ifx$=chr$(13)thenget#2,x$:goto5015
5012 n$(i)=n$(i)+x$:goto5009
5015 get#2,x$:ifx$=chr$(13)thenget#2,x$:p(i)=val(h$):next:close2:return
5018 h$=h$+x$:goto5015
5021 rem --- save ---
5024 open1,8,15,"s:hi-score":close1
5027 open2,8,2,"hi-score,s,w"
5030 fori=1to8:fr$=chr$(13):print#2,n$(i) fr$ str$(p(i)) fr$:next:close2:return
5033 rem---display--
5036 fori=1to8:printn$(i),p(i):next:return
5039 rem init
5042 fori=1to8:n$(i)="c.b.":p(i)=i:next:gosub5021:return
5045 gosub5000:gosub3460:return
5050 rem ----- gratulation -----
5055 fori=stos+24:pokei,0:next:a$="[255]hq an kommandant "+n$+":":gosub541:print
5060 a$="wir gratulieren ihnen zu diesem erfolg. sie haben alle feindlichen"
5063 gosub541:a$="schiffe versenkt.":gosub541:print
5065 a$="dafuer benoetigten sie"+str$(ss)+" schuss.":gosub541:print
5066 gosub3385:a$="sie erreichten"+str$(p)+" punkte.":gosub541
5070 getw$:ifw$=""then5070
5071 return
5075 rem treffer bei spieler
5080 poke53280,1:forq=1to8:poke53270,q:next:forq=8to1:poke53270,q
5085 next:poke53280,11:return
5090 poke53270,peek(53270)or16:return
5095 rem