home *** CD-ROM | disk | FTP | other *** search
- 10 rem ========================64
- 20 rem (p) commodore welt ==
- 30 rem ==========================
- 40 rem (c) by ==
- 50 rem guenter kramer ==
- 60 rem ==
- 70 rem version 2.0 40z./ascii==
- 80 rem c-64 floppy/datasette ==
- 90 rem ==========================
- 95 gosub 60000
- 100 ifa=1then130
- 110 a=1
- 120 load"mp gelbe kugeln",8,1
- 130 gosub4740
- 140 gosub2920
- 150 gosub3130
- 160 gosub4180
- 170 gosub1160
- 180 gosub290
- 190 gosub5270
- 200 printchr$(147)
- 210 print"ein neues spiel?"s2$"(j/n)"
- 220 geta$
- 230 ifa$="n"thenend
- 240 ifa$<>"j"then220
- 250 run130
- 260 ********************
- 270 *** spiel laeuft ***
- 280 ********************
- 290 sn=1:bi=0
- 300 a=rnd(-ti)
- 310 gosub1710
- 320 gz=5:ru=1
- 330 goto370
- 340 sn=sn+1
- 350 ifsn>anthensn=1:ru=ru+1:bo=bo-60:gz=5
- 360 ifbo=0then1030
- 370 pokeze,0:pokesp,0:syscu
- 380 a$=str$(bi)
- 390 printchr$(154)a$". bild";
- 400 a$=str$(ru)
- 410 printtab(15)a$". runde";
- 420 a$=right$(chr$(32)+str$(bo),4)
- 430 printtab(28)"bonus ="a$
- 440 zf=int((10+2*an)*rnd(1))+2
- 450 a=ko(sn,0)
- 460 a0=ko(sn,1)
- 470 ifms(sn,2)=72then920
- 480 gosub2690
- 490 zu=1
- 500 poke198,0
- 510 gosub2480
- 520 ifei=32then630
- 530 ifei=29thena=a+1
- 540 ifei=157thena=a-1
- 550 ifei=145thena0=a0-1
- 560 ifei=17thena0=a0+1
- 570 ifa=0thena=1
- 580 ifa=7thena=6
- 590 ifa0=0thena0=1
- 600 ifa0=8thena0=7
- 610 gosub2690
- 620 goto510
- 630 @sma
- 640 ifru=1then840
- 650 ifzu<>zfthen840
- 660 ifan>1then760
- 670 gosub2190
- 680 @rc,2,31
- 690 a4=a:a5=a0
- 700 a=int(rnd(0)*6)+1
- 710 a0=int(rnd(0)*7)+1
- 720 gosub2190
- 730 a=a4:a0=a5
- 740 @rc,0,31
- 750 goto850
- 760 a4=sn
- 770 @rc,2,31
- 780 forsn=1toan
- 790 gosub2190
- 800 next
- 810 @rc,0,31
- 820 sn=a4
- 830 goto850
- 840 gosub2190
- 850 ko(sn,0)=a
- 860 ko(sn,1)=a0
- 870 zu=zu+1
- 880 ifms(sn,2)=72then910
- 890 ifzu>gzthen920
- 900 goto510
- 910 gz=zu-1
- 920 ms(sn,1)=ms(sn,1)+ms(sn,2)
- 930 gosub2800
- 940 ifsn<anthen340
- 950 en$="0"
- 960 forsn=1toan
- 970 ifms(sn,2)<72then1010
- 980 ms(sn,1)=ms(sn,1)+bo
- 990 gosub2800
- 1000 en$="1"
- 1010 next
- 1020 ifen$="0"then340
- 1030 sn=1
- 1040 ifbi<6then310
- 1050 pokeze,24:pokesp,10:syscu
- 1060 printchr$(153)"spielende";
- 1070 print"(return)"
- 1080 geta$
- 1090 ifa$<>chr$(13)then1080
- 1100 @end
- 1110 printchr$(147)
- 1120 return
- 1130 *********************
- 1140 *** sprites laden ***
- 1150 *********************
- 1160 @soa:@sua
- 1170 @sof,0
- 1180 @suf,0
- 1190 a1$=""
- 1200 a2$=""
- 1210 a3=0
- 1220 a$=chr$(32)+chr$(32)
- 1230 fori=1toan
- 1240 a0$=right$(str$(i),1)
- 1250 a0$=a$+a0$+a$
- 1260 ifi>4then1290
- 1270 a1$=a1$+a0$+chr$(32)
- 1280 goto1300
- 1290 a2$=a2$+a0$+chr$(32)
- 1300 next
- 1310 @rc,0,255
- 1320 a2=1:a1=5:a=1
- 1330 a$=a1$
- 1340 gosub3890
- 1350 a$=a2$
- 1360 a2=4:a1=1
- 1370 gosub3890
- 1380 a$=".....0"
- 1390 a$=a$+a$
- 1400 a$=a$+a$
- 1410 a$=left$(a$,len(a1$))
- 1420 a2=1:a1=14
- 1430 gosub3890
- 1440 a2=4:a1=10
- 1450 a$=left$(a$,len(a2$))
- 1460 gosub3890
- 1470 @sox,0:@sux,0
- 1480 fori=1to7step2
- 1490 a=i*40
- 1500 @sok,a,0,i
- 1510 @sok,a+24,0,i+1
- 1520 @suk,a,0,i
- 1530 @suk,a+24,0,i+1
- 1540 next
- 1550 @src,12
- 1560 @sre:@sma
- 1570 printchr$(147)
- 1580 a$="x"
- 1590 a2=2:a3=0
- 1600 @smf,0
- 1610 forj=1toan
- 1620 a1=3*j-2
- 1630 gosub3450
- 1640 @smk,80*j-60,65,j
- 1650 ifj>4then:@smk,80*j-380,145,j
- 1660 next
- 1670 return
- 1680 ******************
- 1690 *** neues bild ***
- 1700 ******************
- 1710 printchr$(147)
- 1720 bi=bi+1
- 1730 fori=1toan
- 1740 ko(i,0)=1
- 1750 ko(i,1)=1
- 1760 ms(i,2)=18
- 1770 next
- 1780 a$=chr$(119)+chr$(119)+chr$(119)
- 1790 a$=a$+chr$(113)+chr$(113)+a$
- 1800 a$=a$+chr$(32)+chr$(32)+a$
- 1810 a$=a$+chr$(32)+chr$(32)+a$
- 1820 a0$=a$
- 1830 ifan>3then1850
- 1840 a0$=left$(a$,an*10-2)
- 1850 fori=3to11
- 1860 pokeze,i:pokesp,1:syscu
- 1870 printchr$(158)a0$
- 1880 next
- 1890 a0$=a$
- 1900 ifan<5then1970
- 1910 ifan=8then1930
- 1920 a0$=left$(a$,(an-4)*10-2)
- 1930 fori=13to21
- 1940 pokeze,i:pokesp,1:syscu
- 1950 printchr$(158)a0$
- 1960 next
- 1970 forsn=1toan
- 1980 fork=1to10
- 1990 a=1+int(6*rnd(1))
- 2000 a0=1+int(7*rnd(1))
- 2010 gosub2190
- 2020 next
- 2030 a=2:a0=6:gosub2190
- 2040 a=5:a0=2:gosub2190
- 2050 pokeze,2
- 2060 pokesp,10*sn-9
- 2070 ifsn<5then2100
- 2080 pokeze,22
- 2090 pokesp,10*sn-49
- 2100 syscu
- 2110 printchr$(30)chr$(18)e$
- 2120 next
- 2130 sn=1
- 2140 bo=900
- 2150 return
- 2160 *********************
- 2170 *** setzen felder ***
- 2180 *********************
- 2190 fori=atoi+2
- 2200 forj=a0toj+2
- 2210 a1=40*j+i+70+10*sn
- 2220 ifsn>4thena1=a1+360
- 2230 a2=peek(f+a1)and15
- 2240 a3=peek(b+a1)
- 2250 ifa3=81then2310
- 2260 ifa2=7thenpokef+a1,10:goto2290
- 2270 ms(sn,2)=ms(sn,2)+1
- 2280 pokef+a1,7
- 2290 pokeb+a1,81
- 2300 goto2330
- 2310 ifa2=7thenms(sn,2)=ms(sn,2)-1
- 2320 pokeb+a1,87
- 2330 a$=str$(ms(sn,2))
- 2340 a$=right$(a$,2)
- 2350 pokeze,2
- 2360 pokesp,10*sn-3
- 2370 ifsn<5then2400
- 2380 pokeze,22
- 2390 pokesp,10*sn-43
- 2400 syscu
- 2410 printchr$(159)a$
- 2420 nextj,i
- 2430 e$=e$(ms(sn,0))
- 2440 return
- 2450 ************************
- 2460 *** eingabe abfragen ***
- 2470 ************************
- 2480 ei=0
- 2490 geta$
- 2500 @sme,sn
- 2510 ifms(sn,0)<3then2550
- 2520 ifa$=""then2640
- 2530 ei=asc(a$)
- 2540 goto2640
- 2550 poke56322,224
- 2560 a2=peek(56320)
- 2570 ifms(sn,0)=1thena2=peek(56321)
- 2580 poke56322,255
- 2590 if(a2and1)=0thenei=145
- 2600 if(a2and2)=0thenei=17
- 2610 if(a2and4)=0thenei=157
- 2620 if(a2and8)=0thenei=29
- 2630 if(a2and16)=0thenei=32
- 2640 ifei=0then2490
- 2650 return
- 2660 **********************
- 2670 *** bewegen sprite ***
- 2680 **********************
- 2690 a1=80*sn-68+8*a
- 2700 a2=57
- 2710 ifsn<5then2740
- 2720 a1=a1-320
- 2730 a2=137
- 2740 a2=a2+8*a0
- 2750 @smk,a1,a2,sn
- 2760 return
- 2770 ************************
- 2780 *** zaehler anzeigen ***
- 2790 ************************
- 2800 a$=str$(ms(sn,1))
- 2810 a$=right$(a$,len(a$)-1)
- 2820 a$=right$("....."+a$,6)
- 2830 a2=1:a1=14:a3=0
- 2840 ifsn>4thena2=4
- 2850 a=sn*6-5
- 2860 ifsn>4thena=a-24:a1=10
- 2870 gosub3890
- 2880 return
- 2890 ********************
- 2900 *** anfangswerte ***
- 2910 ********************
- 2920 sys12*4096
- 2930 @rf,0:@rc,4,255
- 2940 @rc,3,31:@re:@saa:@saf,0
- 2950 printchr$(150)chr$(147)
- 2960 printchr$(158)
- 2970 b=52224: rem bildspeicher
- 2980 f=55296: rem farbspeicher
- 2990 cu=58640: rem cursorsteuerung
- 3000 ze=214: rem cursorzeile
- 3010 sp=211: rem cursorspalte
- 3020 si=54272: rem sid
- 3030 dime$(3): rem eingabe
- 3040 dimms(8,2): rem spielerwerte
- 3050 dimko(8,1): rem koordinaten
- 3060 e$(1)="joy-1"
- 3070 e$(2)="joy-2"
- 3080 e$(3)="taste"
- 3090 return
- 3100 *****************
- 3110 *** titelbild ***
- 3120 *****************
- 3130 a$="gelbe kugeln"
- 3140 a1=1:a2=7:a3=128
- 3150 gosub3450
- 3160 a=2:a1=8:a2=7
- 3170 gosub3890
- 3180 a=int(len(a$)/2):a1=176-8*a
- 3190 @src,3:@smc,3:@srx,1:@sry,1
- 3200 @srk,168-8*len(a$)
- 3210 @smk,a1,67:@soe:@sme
- 3220 pokeze,3:pokesp,20-a:syscu
- 3230 printa$
- 3240 fori=1to200:next
- 3250 pokeze,7:pokesp,12:syscu
- 3260 print"ein programm von"
- 3270 fori=1to200:next
- 3280 fori=67to200
- 3290 @smk,a1,i
- 3300 next
- 3310 @sma:@sue
- 3320 @smf,0:a$="guenter kramer"
- 3330 a1=1:a2=2:a3=0:@sme
- 3340 @smx,1:@smy,1
- 3350 @smk,56,92
- 3360 gosub3450
- 3370 a=2:a2=2:a1=14
- 3380 gosub3890
- 3390 @rc,2,56
- 3400 @rc,14,31
- 3410 return
- 3420 *********************
- 3430 *** rahmen setzen ***
- 3440 *********************
- 3450 a=len(a$)
- 3460 if(a2and1)=1thengosub3530
- 3470 if(a2and2)=2thengosub3650
- 3480 if(a2and4)=4thengosub3770
- 3490 return
- 3500 *******************
- 3510 *** oberer rand ***
- 3520 *******************
- 3530 fori=1+a1toa+a1
- 3540 @sob,64+a3,1,i:next
- 3550 @sob,73+a3,1,i:@sob,66+a3,9,i
- 3560 @sob,75+a3,14,i
- 3570 fori=a+a1to1+a1step-1
- 3580 @sob,64+a3,14,i:next
- 3590 @sob,74+a3,14,i
- 3600 @sob,66+a3,9,i:@sob,85+a3,1,i
- 3610 return
- 3620 ****fn****************
- 3630 *** mittelsprites ***
- 3640 *******************
- 3650 fori=1+a1toa+a1
- 3660 @smb,64+a3,1,i:next
- 3670 @smb,73+a3,1,i:@smb,66+a3,9,i
- 3680 @smb,75+a3,14,i
- 3690 fori=a+a1to1+a1step-1
- 3700 @smb,64+a3,14,i:next
- 3710 @smb,74+a3,14,i
- 3720 @smb,66+a3,9,i:@smb,85+a3,1,i
- 3730 return
- 3740 ********************
- 3750 *** unterer rand ***
- 3760 ********************
- 3770 fori=1+a1toa+a1
- 3780 @sub,64+a3,1,i:next
- 3790 @sub,73+a3,1,i:@sub,66+a3,9,i
- 3800 @sub,75+a3,14,i
- 3810 fori=a+a1to1+a1step-1
- 3820 @sub,64+a3,14,i:next
- 3830 @sub,74+a3,14,i
- 3840 @sub,66+a3,9,i:@sub,85+a3,1,i
- 3850 return
- 3860 *******************
- 3870 *** text setzen ***
- 3880 *******************
- 3890 iflen(a$)=0then3930
- 3900 if(a2and1)=1thengosub3970
- 3910 if(a2and2)=2thengosub4040
- 3920 if(a2and4)=4thengosub4110
- 3930 return
- 3940 *****************
- 3950 *** text oben ***
- 3960 *****************
- 3970 fori=0tolen(a$)-1
- 3980 a4=asc(mid$(a$,i+1,1))and63
- 3990 @sob,a4+a3,a1,a+i:next
- 4000 return
- 4010 ******************
- 4020 *** text mitte ***
- 4030 ******************
- 4040 fori=0tolen(a$)-1
- 4050 a4=asc(mid$(a$,i+1,1))and63
- 4060 @smb,a4+a3,a1,a+i:next
- 4070 return
- 4080 ******************
- 4090 *** text unten ***
- 4100 ******************
- 4110 fori=0tolen(a$)-1
- 4120 a4=asc(mid$(a$,i+1,1))and63
- 4130 @sub,a4+a3,a1,a+i:next
- 4140 return
- 4150 **************
- 4160 *** anfang ***
- 4170 **************
- 4180 printchr$(150)
- 4190 pokeze,12:pokesp,10:syscu
- 4200 print"wieviele mitspieler?"
- 4210 print
- 4220 print"1 = joystick 1"
- 4230 print"2 = joystick 2"
- 4240 print"3 = tastatur"
- 4250 print
- 4260 print"0 = spiel beginnt"
- 4270 print"9 = high score"
- 4280 pokeze,14:pokesp,10:syscu
- 4290 an=0
- 4300 an=an+1
- 4310 printtab(19)"spieler"an" = ";
- 4320 poke204,0
- 4330 poke198,0
- 4340 geta$
- 4350 ifa$="0"then4440
- 4360 ifa$="9"then4470
- 4370 ifa$<"1"then4340
- 4380 ifa$>"3"then4340
- 4390 ms(an,0)=val(a$)
- 4400 poke204,1
- 4410 printe$(ms(an,0))
- 4420 ifan<8then4300
- 4430 goto4550
- 4440 ifan=1then4340
- 4450 an=an-1
- 4460 goto4550
- 4470 @rc,0,255
- 4480 @sma
- 4490 poke204,1
- 4500 gosub5020
- 4510 @rc,2,56
- 4520 @rc,14,31
- 4530 printchr$(150)chr$(147)
- 4540 goto4620
- 4550 poke204,1
- 4560 print"-"
- 4570 printtab(19)"in ordnung? ";
- 4580 poke204,0
- 4590 geta$
- 4600 ifa$="j"then4680
- 4610 ifa$<>"n"then4590
- 4620 poke204,1
- 4630 fori=12to24
- 4640 poke781,i
- 4650 sys59903
- 4660 next
- 4670 goto4180
- 4680 poke204,1
- 4690 printa$
- 4700 return
- 4710 ***********************
- 4720 *** lesen highscore ***
- 4730 ***********************
- 4740 open15,8,15
- 4750 open3,8,3,"0:h.s. kugeln,u,r"
- 4760 input#15,a,a$,a0,a1
- 4770 ifa=0thenhs=1:goto4880
- 4780 close3:close15
- 4790 printchr$(147)a;a$;a0;a1
- 4800 print"wenn highscore vorhanden,"
- 4810 print"diskette einlegen und"
- 4820 print"'j' eingeben."
- 4830 print"sonst 'n' eingeben."
- 4840 geta$
- 4850 ifa$="j"then4740
- 4860 ifa$<>"n"then4840
- 4870 hs=0
- 4880 dimhs$(20),hs(20)
- 4890 a$=" "
- 4900 a=0
- 4910 fori=1to20
- 4920 ifhs=0then4940
- 4930 input#3,a$,a
- 4940 hs$(i)=a$
- 4950 hs(i)=a
- 4960 next
- 4970 close3:close15
- 4980 return
- 4990 **************************
- 5000 *** anzeigen highscore ***
- 5010 **************************
- 5020 printchr$(159)chr$(147)
- 5030 printspc(15)"ehrentafel"
- 5040 print:print
- 5050 a$=""
- 5060 fori=1to7
- 5070 a$=a$+chr$(32)
- 5080 next
- 5090 fori=1to10
- 5100 a0$=right$(a$+str$(hs(i)),7)
- 5110 a1$=right$(a$+str$(hs(i+10)),7)
- 5120 ifhs(i)=0thena0$=a$
- 5130 ifhs(i+10)=0thena1$=a$
- 5140 printspc(6)hs$(i)spc(1)a0$;
- 5150 printspc(1)chr$(122)chr$(122);
- 5160 printspc(1)hs$(i+10)spc(1)a1$
- 5170 next
- 5180 pokeze,22:pokesp,0:syscu
- 5190 print"weiter = return"
- 5200 poke198,0
- 5210 geta$
- 5220 ifa$<>chr$(13)then5210
- 5230 return
- 5240 ************************
- 5250 *** update highscore ***
- 5260 ************************
- 5270 pokeze,10:pokesp,13:syscu
- 5280 print"namen eingeben"
- 5290 print
- 5300 fori=1toan
- 5310 ifms(i,1)<hs(20)then5530
- 5320 a0$=""
- 5330 poke198,0
- 5340 printspc(13)"spieler"i" = ";
- 5350 forj=1to4
- 5360 geta$
- 5370 ifa$=chr$(13)thenj=4:goto5420
- 5380 ifa$<chr$(35)then5360
- 5390 ifa$>chr$(90)then5360
- 5400 printa$;
- 5410 a0$=a0$+a$
- 5420 next
- 5430 forj=19to1step-1
- 5440 hs$(j+1)=hs$(j)
- 5450 hs(j+1)=hs(j)
- 5460 a=j+1
- 5470 ifms(i,1)>hs(j)thena=j
- 5480 hs(a)=ms(i,1)
- 5490 hs$(a)=left$(a0$+" ",4)
- 5500 ifa<>jthenj=0
- 5510 next
- 5520 print
- 5530 next
- 5540 gosub5020
- 5550 printchr$(147)
- 5560 ifhs=0then5600
- 5570 open1,8,15
- 5580 print#1,"s:h.s. kugeln"
- 5590 close1
- 5600 open15,8,15
- 5610 open3,8,3,"0:h.s. kugeln,u,w"
- 5620 poke198,0
- 5630 input#15,a,a$,a0,a1
- 5640 ifa=0then5740
- 5650 close3:close15
- 5660 printchr$(147)a;a$;a0;a1
- 5670 print"wenn highscore gewuenscht,"
- 5680 print"diskette einlegen und"
- 5690 print"'j' eingeben."
- 5700 print"sonst 'n' eingeben."
- 5710 geta$:ifa$="n"then5790
- 5720 ifa$="j"then5570
- 5730 goto5710
- 5740 fori=1to20
- 5750 ifhs(i)=0thenhs$(i)=" "
- 5760 print#3,hs$(i);chr$(13);hs(i)
- 5770 next
- 5780 close3:close15
- 5790 return
- 60000 rem nachspann ===============
- 60010 rem *** zeichensatz/graphik *
- 60020 s2$=chr$(160)
- 60030 return
-