home *** CD-ROM | disk | FTP | other *** search
- 10 rem *** fischzucht **************
- 20 rem (p) commodore disc ***
- 30 rem ***
- 40 rem (c) 6/90 by g. kramer ***
- 50 rem emsdetten ***
- 60 rem *****************************
- 70 rem ein programm fuer den ***
- 80 rem commodore 64 ***
- 90 rem******************************
- 100 ifa$="1"then130
- 110 a$="1"
- 120 load"m.p. fischzucht",8,1
- 130 poke45,1:poke46,64
- 140 clr
- 150 gosub4120
- 160 gosub4660
- 170 gosub4300
- 180 gosub3360
- 190 gosub 260
- 200 gosub1040
- 210 ifa$="j"then170
- 220 end
- 230 ********************
- 240 *** spiel laeuft ***
- 250 ********************
- 260 r=0
- 270 r=r+1
- 280 ifr>50then1000
- 290 pokeze,19:pokesp,0:syscu
- 300 printchr$(159)rchr$(157);
- 310 print". runde"
- 320 s=0
- 330 s=s+1
- 340 ifs>anthen270
- 350 gosub1250
- 360 gosub3250
- 370 fi=0:fz=0
- 380 a=0:a0=0
- 390 fori=1to100:next
- 400 a1=a+(8*a0)+sd
- 410 a2=peek(a1)
- 420 pokea1,0
- 430 gosub1470
- 440 pokea1,a2
- 450 ifei=0then390
- 460 ifei=32then570
- 470 ifei=29thena=a+1
- 480 ifa>3thena=0
- 490 ifei=157thena=a-1
- 500 ifa<0thena=3
- 510 ifei=17thena0=a0+1
- 520 if(a0>(r-1))or(a0>5)thena0=0
- 530 ifei=145thena0=a0-1
- 540 ifa0<0thena0=a0+r
- 550 ifa0>5thena0=5
- 560 goto390
- 570 z=a:z0=a0
- 580 ifa0=0then620
- 590 a0=a+4*(a0-1)
- 600 a=s
- 610 goto640
- 620 a0=a:a=0
- 630 geta$:ifa$<>""then630
- 640 a2=zu(a,a0,0,0)
- 650 a3=zu(a,a0,0,1)
- 660 a4=int(rnd(1)*4)
- 670 a5=a3and15
- 680 a6=a3and240
- 690 if(a4and1)=0thena5=a2and15
- 700 if(a4and2)=0thena6=a2and240
- 710 a1=r-1:ifr>6thena1=5
- 720 a1=4*a1+fi
- 730 zu(s,a1,0,fz)=a5ora6
- 740 a2=zu(a,a0,1,0)
- 750 a3=zu(a,a0,1,1)
- 760 a4=int(rnd(1)*8)
- 770 a5=a3and1
- 780 if(a4and1)=0thena5=a2and1
- 790 a6=a3and2
- 800 if(a4and2)=0thena6=a2and2
- 810 a7=a3and4
- 820 if(a4and4)=0thena7=a2and4
- 830 a5=a5ora6
- 840 zu(s,a1,1,fz)=a5ora7
- 850 iffz=0then880
- 860 gosub2900
- 870 gosub1680
- 880 a=z:a0=z0
- 890 pokepu,0
- 900 iffz=0then960
- 910 fz=0:fi=fi+1
- 920 iffi<4then390
- 930 gosub1360
- 940 gosub1980
- 950 goto330
- 960 fz=1
- 970 pokesd+a1+a1-fi+12,255
- 980 pokesd+a1+a1-fi+8,71
- 990 goto390
- 1000 return
- 1010 *****************
- 1020 *** spielende ***
- 1030 *****************
- 1040 pokepu,0
- 1050 pokeze,19:pokesp,15:syscu
- 1060 printchr$(5)"ende - neues spiel?"
- 1070 geta$:ifa$="n"then1200
- 1080 ifa$<>"j"then1070
- 1090 fori=0toan
- 1100 fori0=0to3
- 1110 ms(i,i0)=0
- 1120 next
- 1130 fori0=0to23
- 1140 fori1=0to1
- 1150 fori2=0to1
- 1160 zu(i,i0,i1,i2)=0
- 1170 nexti2,i1,i0,i
- 1180 gosub5130
- 1190 printchr$(147)
- 1200 a=usr(8)
- 1210 return
- 1220 *********************
- 1230 *** neuer spieler ***
- 1240 *********************
- 1250 a=(s-1)*8+1
- 1260 a=b+840+a
- 1270 fori=atoa+5
- 1280 pokei,peek(i)or128
- 1290 pokei+40,peek(i+40)or128
- 1300 pokei+80,peek(i+80)or128
- 1310 next
- 1320 return
- 1330 *********************
- 1340 *** alter spieler ***
- 1350 *********************
- 1360 a=(s-1)*8+1
- 1370 a=b+840+a
- 1380 fori=atoa+5
- 1390 pokei,peek(i)and127
- 1400 pokei+40,peek(i+40)and127
- 1410 pokei+80,peek(i+80)and127
- 1420 next
- 1430 return
- 1440 *************************
- 1450 *** eingabe auswerten ***
- 1460 *************************
- 1470 ei=0
- 1480 geta$
- 1490 ifa$<>chr$(133)then1520
- 1500 gosub2390
- 1510 goto1470
- 1520 ifms(s,0)<3then1560
- 1530 fore=1to100:next
- 1540 ifa$<>""thenei=asc(a$)
- 1550 goto1640
- 1560 poke56322,224
- 1570 a3=peek(56322-ms(s,0))
- 1580 poke56322,255
- 1590 if(a3and1)=0thenei=145
- 1600 if(a3and2)=0thenei=17
- 1610 if(a3and4)=0thenei=157
- 1620 if(a3and8)=0thenei=29
- 1630 if(a3and16)=0thenei=32
- 1640 return
- 1650 ********************
- 1660 *** punktwertung ***
- 1670 ********************
- 1680 a1=aand15
- 1690 a2=(aand240)/16
- 1700 a=mu(a2,a1,a0)
- 1710 ifa=0then1940
- 1720 pokeze,19:pokesp,15:syscu
- 1730 printchr$(158)"praemie ="a
- 1740 gosub5330
- 1750 mu(a2,a1,a0)=int(a/3)
- 1760 ifa/3<100thenmu(a2,a1,a0)=0
- 1770 ms(s,1)=ms(s,1)+a
- 1780 a$=str$(ms(s,1))
- 1790 a$=right$("....."+right$(a$,len(a$)-1),6)
- 1800 fori0=1to6
- 1810 fori1=1to0step-1
- 1820 printchr$(18+128*i1);
- 1830 pokeze,23
- 1840 pokesp,8*(s-1)+1:syscu
- 1850 printchr$(158)a$
- 1860 nexti1,i0
- 1870 gosub5440
- 1880 a$=""
- 1890 fori=1to20
- 1900 a$=a$+chr$(32)
- 1910 next
- 1920 pokeze,19:pokesp,15:syscu
- 1930 printa$
- 1940 return
- 1950 *********************
- 1960 *** loeschen bild ***
- 1970 *********************
- 1980 poke53280,4
- 1990 ifr<6then2300
- 2000 a=0
- 2010 fori0=0to19
- 2020 a0=8*int(i0/4)+(i0and3)+8
- 2030 ifpeek(sd+a0+4)=248then2060
- 2040 a1=peek(sd+a0)
- 2050 ifint(a1/16)<>(a1and15)then2090
- 2060 a=a+1
- 2070 pokesd+a0,187
- 2080 ifa=4theni0=30
- 2090 next
- 2100 a1=4-a:a=0
- 2110 fori0=0to19
- 2120 a0=8*int((i0+a)/4)+((i0+a)and3)
- 2130 ifpeek(sd+a0+8)<>187then2160
- 2140 a=a+1
- 2150 goto2120
- 2160 ifa1=0then2250
- 2170 a0=8*int((i0+a)/4)+((i0+a)and3)
- 2180 ifpeek(sd+a0+8)<>187then2210
- 2190 a=a+1
- 2200 goto2170
- 2210 a1=a1-1
- 2220 ifa1<0then2250
- 2230 pokesd+a0+8,187
- 2240 goto2170
- 2250 fori1=0to1
- 2260 fori2=0to1
- 2270 zu(s,i0,i1,i2)=zu(s,i0+a,i1,i2)
- 2280 nexti2,i1
- 2290 next
- 2300 fori0=8to48step8
- 2310 fori1=0to4
- 2320 pokesd+i0+i1,0
- 2330 nexti1,i0
- 2340 poke53280,0
- 2350 return
- 2360 ***********************
- 2370 *** anzeigen farben ***
- 2380 ***********************
- 2390 fori=1to17
- 2400 pokezl,i
- 2410 syslo
- 2420 next
- 2430 pokeze,1:pokesp,31:syscu
- 2440 print"farbe?"
- 2450 print
- 2460 fori=0to4
- 2470 printtab(30);
- 2480 printi+1"="
- 2490 next
- 2500 fori=0to4
- 2510 a3=155+(40*i)
- 2520 pokef+a3,f(i)
- 2530 pokeb+a3,81
- 2540 next
- 2550 geta$
- 2560 if(a$<"1")or(a$>"5")then2550
- 2570 a4=1:a5=30
- 2580 fori=1to7
- 2590 pokezl,i
- 2600 syslo
- 2610 next
- 2620 a3=val(a$)-1
- 2630 fori=a3to4
- 2640 fori0=0to4
- 2650 ifi=i0then2850
- 2660 fori1=1to7
- 2670 ifmu(i,i0,i1)=0then2840
- 2680 a6=40*a4+a5
- 2690 pokef+a6,f(i)
- 2700 pokeb+a6,81
- 2710 pokef+a6+1,f(i0)
- 2720 if(i1and4)>0thenpokeb+a6+1,75
- 2730 pokef+a6+2,f(i0)
- 2740 if(i1and1)>0thenpokeb+a6+2,62
- 2750 pokef+a6+3,f(i0)
- 2760 if(i1and2)>0thenpokeb+a6+3,60
- 2770 a4=a4+1
- 2780 ifa4<18then2840
- 2790 ifa5=36then2830
- 2800 a5=36
- 2810 a4=1
- 2820 goto2840
- 2830 i=5:i0=5:i1=8
- 2840 nexti1
- 2850 nexti0,i
- 2860 return
- 2870 **********************
- 2880 *** gene verbinden ***
- 2890 **********************
- 2900 a=zu(s,a1,0,0)
- 2910 a0=zu(s,a1,1,0)
- 2920 a3=zu(s,a1,0,1)
- 2930 a4=zu(s,a1,1,1)
- 2940 ifa=a3then3070
- 2950 a5=aand240
- 2960 a6=a3and240
- 2970 ifa5=a6then3010
- 2980 ifa6<a5thena=(aand15)ora6
- 2990 ifa>15then3010
- 3000 ifa5+a6=48thena=aor64
- 3010 a5=aand15
- 3020 a6=a3and15
- 3030 ifa5=a6then3070
- 3040 ifa6<a5thena=(aand240)ora6
- 3050 if(aand15)>0then3070
- 3060 ifa5+a6=3thena=aor4
- 3070 a5=0
- 3080 ifa0+a4=0then3150
- 3090 a5=a0anda4
- 3100 ifa5>0then3140
- 3110 a5=(a0and1)or(a4and1)
- 3120 ifa5=0thena5=(a0and2)or(a4and2)
- 3130 ifa5=0thena5=(a0and4)or(a4and4)
- 3140 a0=a5
- 3150 a2=f(int(a/16))*16
- 3160 a3=f(aand15)
- 3170 ifa0=0thena3=a2/16
- 3180 a2=a2+a3
- 3190 pokesd+a1+a1-fi+12,248+a0
- 3200 pokesd+a1+a1-fi+8,a2
- 3210 return
- 3220 **********************
- 3230 *** anzeigen zucht ***
- 3240 **********************
- 3250 ifr=1then3320
- 3260 a=r-1
- 3270 ifa>5thena=5
- 3280 fora1=0to4*a-1
- 3290 fi=a1and3
- 3300 gosub2900
- 3310 next
- 3320 return
- 3330 *********************
- 3340 *** bild aufbauen ***
- 3350 *********************
- 3360 fori=0to39
- 3370 pokef+i,6
- 3380 pokeb+i,99
- 3390 pokef+i+720,6
- 3400 pokeb+i+720,99
- 3410 next
- 3420 fori=1toan
- 3430 a=800+8*(i-1)
- 3440 pokef+a,4
- 3450 pokeb+a,85
- 3460 forj=1to6
- 3470 pokef+a+j,4
- 3480 pokeb+a+j,64
- 3490 next
- 3500 pokef+a+7,4
- 3510 pokeb+a+7,73
- 3520 a=a+47
- 3530 forj=0to80step40
- 3540 pokef+a+j,4
- 3550 pokeb+a+j,66
- 3560 next
- 3570 a=a+120
- 3580 pokef+a,4
- 3590 pokeb+a,75
- 3600 forj=1to6
- 3610 pokef+a-j,4
- 3620 pokeb+a-j,64
- 3630 next
- 3640 a=a-7
- 3650 pokef+a,4
- 3660 pokeb+a,74
- 3670 forj=40to120step40
- 3680 pokef+a-j,4
- 3690 pokeb+a-j,66
- 3700 next
- 3710 a0=8*(i-1)+1
- 3720 pokeze,21:pokesp,a0:syscu
- 3730 printchr$(30)e$(ms(i,0))
- 3740 a$=".....0"
- 3750 pokeze,23:pokesp,a0:syscu
- 3760 printchr$(158)a$
- 3770 next
- 3780 fori=sdtosd+55
- 3790 pokei,0
- 3800 next
- 3810 fori=0to7
- 3820 pokesd+i,17*f(iand3)
- 3830 ifi>3thenpokesd+i,248
- 3840 next
- 3850 fori=0to3
- 3860 zu(0,i,0,0)=17*i
- 3870 zu(0,i,0,1)=17*i
- 3880 next
- 3890 fori=1to3
- 3900 a=int(rnd(1)*4)
- 3910 ifzu(0,a,1,0)>0then3900
- 3920 ifi=3theni=4
- 3930 zu(0,a,1,0)=i
- 3940 zu(0,a,1,1)=i
- 3950 next
- 3960 fori=0to3
- 3970 pokev+2*i,(24+56*i)and255
- 3980 pokev+2*(i+4),(24+56*i)and255
- 3990 next
- 4000 pokev+16,0
- 4010 pokev+27,0
- 4020 pokev+29,255
- 4030 pokev+21,255
- 4040 fori=2040to2047
- 4050 pokei,248
- 4060 next
- 4070 sys49152
- 4080 return
- 4090 *********************
- 4100 *** laden sprites ***
- 4110 *********************
- 4120 a=peek(61)+256*peek(62)
- 4130 poke65,aand255
- 4140 poke66,int(a/256)
- 4150 fori=15872toi+63
- 4160 reada:pokei,a
- 4170 next
- 4180 return
- 4190 data0,0,0,0,0,0,0,120
- 4200 data0,1,240,0,3,224,0,15
- 4210 data248,1,63,254,7,119,255,142
- 4220 data255,255,252,127,255,195,255,255
- 4230 data252,63,255,142,15,254,7,3
- 4240 data248,1,1,192,0,1,192,0
- 4250 data0,112,0,0,60,0,0,6
- 4260 data0,0,0,0,0,0,0,0
- 4270 *******************
- 4280 *** anfangsbild ***
- 4290 *******************
- 4300 pokeze,12:pokesp,12:syscu
- 4310 printchr$(153)"wieviele spieler?"
- 4320 geta$
- 4330 if(a$<"1")or(a$>"5")then4320
- 4340 an=val(a$)
- 4350 pokeze,14:pokesp,12:syscu
- 4360 printan"spieler - ok?"
- 4370 geta$:ifa$="j"then4410
- 4380 ifa$<>"n"then4370
- 4390 pokezl,14:syslo
- 4400 goto4320
- 4410 printchr$(147)chr$(30)
- 4420 printtab(12)"bitte eingeben:"
- 4430 print
- 4440 printtab(12)"1 = "e$(1)
- 4450 printtab(12)"2 = "e$(2)
- 4460 printtab(12)"3 = "e$(3)
- 4470 printchr$(156)
- 4480 fori=1toan
- 4490 printtab(12)"spieler"i" = ";
- 4500 pokepu,0
- 4510 geta$
- 4520 if(a$<"1")or(a$>"3")then4510
- 4530 ms(i,0)=val(a$)
- 4540 printe$(ms(i,0))
- 4550 next
- 4560 printchr$(30)"in ordnung?"
- 4570 geta$:ifa$="j"then4600
- 4580 ifa$="n"then4410
- 4590 goto4570
- 4600 printchr$(147)
- 4610 a=rnd(-ti)
- 4620 return
- 4630 *************
- 4640 *** titel ***
- 4650 *************
- 4660 gosub4960
- 4670 printchr$(147)
- 4680 sys49152
- 4690 a=usr(8)
- 4700 poke2040,13
- 4710 poke53280,0
- 4720 poke53281,0
- 4730 pokev+39,1
- 4740 pokev+23,1:pokev+29,1
- 4750 a$="":a0$=""
- 4760 fori=1to14
- 4770 a$=a$+chr$(32)
- 4780 next
- 4790 fa=14:r=128
- 4800 forz1=1to3
- 4810 z=z1:gosub5630
- 4820 nextz1
- 4830 a$="fischzucht"
- 4840 z=2
- 4850 gosub5630
- 4860 pokeze,6:pokesp,12:syscu
- 4870 print"ein programm von"
- 4880 a$="guenter kramer"
- 4890 z=8:fa=3:a0$="s":r=0
- 4900 pokev+23,0:pokev+29,0
- 4910 gosub5630
- 4920 return
- 4930 ************************
- 4940 *** variable + werte ***
- 4950 ************************
- 4960 v=53248 :rem vic
- 4970 t=54272 :rem sid
- 4980 n=51200 :rem zeichen
- 4990 f=55296 :rem farbram
- 5000 b=1024 :rem bildram
- 5010 cu=58640 :rem cursor
- 5020 ze=214 :rem cu-zeile
- 5030 sp=211 :rem cu-spalte
- 5040 pu=198 :rem tastatur
- 5050 zl=781 :rem loesch ze
- 5060 lo=59903 :rem sys zl
- 5070 sd=50176 :rem spritedaten
- 5080 dime$(3) :rem eingabe
- 5090 dimms(5,3) :rem spieler
- 5100 dimf(4) :rem farben
- 5110 dimmu(4,4,7) :rem wert
- 5120 dimzu(5,23,1,1):rem zuchtgene
- 5130 fori=0to4
- 5140 forj=0to4
- 5150 ifi=jthen5200
- 5160 a=(i+1)*(i+1)+2*(j+1)*(j+1)
- 5170 fork=1to7
- 5180 mu(i,j,k)=(50+k*k)*(a+k)
- 5190 next
- 5200 nextj,i
- 5210 e$(1)="joy 1"
- 5220 e$(2)="joy 2"
- 5230 e$(3)="taste"
- 5240 f(0)=1
- 5250 f(1)=7
- 5260 f(2)=2
- 5270 f(3)=6
- 5280 f(4)=14
- 5290 return
- 5300 ************
- 5310 *** (NULL)ng ***
- 5320 ************
- 5330 gosub5440
- 5340 poket+1,8:poket,180:poket+5,12
- 5350 poket+8,15:poket+7,247
- 5360 poket+15,13:poket+14,10
- 5370 poket+12,12:poket+19,12
- 5380 poket+24,15:poket+4,23
- 5390 poket+11,23:poket+18,23
- 5400 return
- 5410 ********************
- 5420 *** loeschen sid ***
- 5430 ********************
- 5440 fort0=0to24:poket+t0,0:nextt0
- 5450 return
- 5460 **************
- 5470 *** heulen ***
- 5480 **************
- 5490 gosub5440
- 5500 poket,t1-256*int(t1/256)
- 5510 poket+1,int(t1/256):poket+6,240
- 5520 poket+24,15:poket+4,33:return
- 5530 **************
- 5540 *** schuss ***
- 5550 **************
- 5560 gosub5440
- 5570 poket+5,9:poket+1,21
- 5580 poket+24,15:poket+4,129
- 5590 return
- 5600 **********************
- 5610 *** sprites laufen ***
- 5620 **********************
- 5630 y=z*8+50:s=13*64
- 5640 z=19+b+z*40-len(a$)/2
- 5650 fori=1tolen(a$)
- 5660 pokev+1,230
- 5670 pokev,0:t1=34*256
- 5680 a=asc(mid$(a$,i,1))
- 5690 ifa=32then5870
- 5700 ifa>63thena=a-64
- 5710 ifa0$="s"then5860
- 5720 a0=168-(4*(len(a$)+1and254))+i*8
- 5730 forj=stos+62:pokej,0:nextj
- 5740 forj=0to7
- 5750 pokes+3*j+1,peek(n+j+a*8)
- 5760 nextj:t1=0:gosub5490
- 5770 pokev+21,1
- 5780 forj=0toa0step4
- 5790 pokev,jand255
- 5800 pokev+16,int(j/256)
- 5810 poket+1,jand255:nextj
- 5820 forj=230toystep-2
- 5830 pokev+1,j
- 5840 poket+1,j-34
- 5850 nextj
- 5860 gosub5560
- 5870 pokez+i+f-b,fa
- 5880 pokez+i,a+r
- 5890 pokev+21,0
- 5900 nexti
- 5910 return
-