Sind Sie Kleingärtner? Nein? Auch gut. In jedem Falle sollten Sie sich an diesem pfiffigen Spiel versuchen.
Felix ist ein Hobbygärtner wie es viele gibt. Eines Morgens traut Felix seinen Augen kaum: Ein Maulwurf ist dabei, die Früchte seines Fleißes zu untergraben. Und so muß er in die Rolle des Jägers schlüpfen und nebenbei die Blumen vor ihrem Schicksal retten. Da ist zum Beispiel das wühlende Ungetüm, dessen Löcher Felix zum Stolpern bringen. Wenn die Spielzeit einer Runde abgelaufen ist, bricht diese Mission ab, weil der Boden natürlich inzwischen ruiniert ist. Spielablauf
Auf dem Rasen als Spielfläche verteilt der Computer die Blumen und Rasenmäher, die aufzusammeln sind. Dazu ist die Position des unterirdisch wühlenden Maulwurfs an einem Kreuz zu erkennen. Wenn dann unser Held Felix erscheint, haben Sie noch ein paar Sekunden Zeit, sich zu orientieren, bevor ein akustisches Signal und die Verfärbung des Bildschirm-Rahmens den Beginn der Hatz ankündigen.
Betritt Felix ein Feld zum zweiten Mal, hat das fünf Minuspunkte zur Folge. Ziel ist es, alle auf dem Rasen verteilten Dinge in Sicherheit zu bringen. Fällt Felix in eines der Löcher, tritt er auf den grabenden Maulwurf oder betritt er ein Rasenstück zum dritten Mal, endet sein Versuch und er bekommt eine weitere Chance. Nach drei Fehlversuchen hat er jedoch seine Unfähigkeit bewiesen und wird zwangspensioniert. Bewährt er sich aber, dürfen Sie sich als sein Späher in die Annalen der Geschichte einschreiben.
Das Programm ist zwar für Joysticks konzipiert, läßt sich jedoch leicht auf Steuerung über die Tastatur umstellen, in dem Sie in den Zeilen 1030 bis 1060 die entsprechenden Tastencodes ändern. (Gerd Schröder/ja)
Name: Felix und der Maulwurf
Computer: CPC 464/664/6128
Checksummer: Explora
Datenträger: Kassette, Diskette
10 '*********** [7B6C]
20 '* Ein Spiel von * [7FD2D
30 '* * [B2BC3
40 '* Gerd Schroeder * [BEC0]50 '* * [AAC03
60 ’* Heinsberg * [60B0]
70 '* * [42C4]
80 '* 1/86 * [A662]
90 *********** [4B7C3
100 REM **** VORSPANN **** [1678]
110 SPEED INK 15,15:ENV 1,13,-1,3:MODE 0 :BORDER 0:INK 12,3:PAPER 12:INK 13,2 6:PEN 13:INK 14,0:DIM farbe(11):FOR k=0 TO 10:INK k,0:NEXT k [F8E2]
120 FOR k=1 TO 5:LOCATE k+4,11:PRINT MID *("FELIX”,k,1):SOUND 4,300,30,13,l:F OR z»l TO 300:NEXT z,k [BA2C]
130 FOR k=1 TO 7:LOCATE k+6,14:PRINT MID M"und der" , k .1) :SOUND 4,200,30,13,1 }FOR z = l TO 300:NEXT zfk [468E]
140 FOR k=1 TO 8*LOCATE k*8,17sPRINT MID* '"MAULWURF",k,1):SOUND 4,150,30,13,1:FOR z-1 TO 300:NEXT z,k [B646]
150 INK 12,0: RESTORE 280:GOSUB 270-.EVERY 400,0 GOSUB 260:EVERY 550,1 GOSUB 2 90:EVER/ 40,2 GOSUB 310 [20C2]
160 LOCATE 1,1:PEN 14:PRINT "Start:Taste druecken":za»1 [224E]
170 FOR k-0 TO 90 STEP IO [4E80]
180 f =k /10+1:MOVE k,k:DRAWR 0,400-f*20,f :DRAWR 640-f*20,O,f:DRAWR 0,4*20-400 ,f:DRAWR f*20-640,0,f [OB7C]
190 NEXT k 138083
200 IF za=0 THEN f=10: f a—1: f b= 1 ELSE f = 1:fa=1:fb=11 [42EA]
210 FOR K=1 TO 11 [2BB0]
220 IF k+f<11 THEN INK k,farbe(k+f) ELSE INK k,4arbe(k—10+4) [885E]
230 NEXT k [F0FE]
240 f=f*fa:IF fOfb THEN 210 [F788]
250 a#=INkEY*:IF a$-"" THEN 200 ELSE 320 [F316]
260 IF zaehler-6 THEN RESTORE 280:zaehler-0 [8748]
270 FOR K=1 TO 10:READ x:farbe(k)=x:NEXT klzaehler=zaehler+l:RETURN [DA7A]
280 DATA 0,0,0,0,0,6,8,18,7,2,3,3,3.3,5, 3,3,3,3,3,0,6,0,8,0,18,0,7,0,2,0,0,0 ,0,2,0,0,0,0,6,0,0,0,6,6,6,6,6,6,6,0 ,0,0,24,6,0,0,0,24,6 [EA84]
290 INK 14,26:AFTER 100,3 GOSUB 300:RETURN [A8BE]
300 INK 14,0:IF za-0 THEN za=l:RETURN ELSE za-O:RETURN [3588]
310 v»INT(RND*26)+1:INK 13,v:RETURN [19A2]
320 REM **** VORBESETZUNGEN **«» [5C14]
330 CLS:4 4 -REMAIN(O):ff-REMAIN(1):ff=REM AIN(2):f f-REMAIN(3):RANDOMIZE TIME:P APER O:PEN 1:INK 0,3:INK 1,9:INK 2,2 O:INK 3,15:INK 4,18:INK 5,4:INK 6,26 :INK 7,0:INK 8,26,6:INK 9,26,1 [C2AA3
340 ENT -2,10,5,2,5,-11,2:ENV 2,15,1,5,15,-1,40 [B3A83
350 ENV 3,15,-1,7 [58E63
360 ENT -4,1,1,/:ENV 4,1,0,30,15,-1,40 [F852]
370 ENT -5,3,-1,1,3,1,1:ENV 5,1,0,30,15,-1,7 [4C82]
380 ENT 6,20,-5,1 [4EE2]
390 ENT 7,20,5,1 [428C3
400 ENT -8,10,-5,1,9,5,1 [F9763
410 DIM 4eld(20,22),4eld4a(20,22),pu(8), aname*(8),p(3),ze:le(25):p(l)=10:p(2 )=20:p(3)-50 [5BAC3
420 RESTORE 440:FOR K=1 TO 8:READ x,an$:pu(k)-x:anamel(k)=an$:NEXT k [DF683
430 RESTORE 450:FOR K=1 TO 25:READ x:zei1e(k)=x:NEXT k [025C3
440 DATA 5000,Maull,4000,Sesam,3500,Spie ler,3000,Ich,2500,Fatzke,2000,Hering ,1500,Letzter,1000,Hallo [D03E3
450 DATA 5,17,3,10,18,4,11,1,20,8,13,22,7, »2,19,2,14,9,16,21,6,15,»,24,35 [IAB41
460 SYMBOL 240,127,127,127,127,127,127,127,0 [A2183
470 SYMBOL 241,90,36,66,90,66,36,90,0 [257A3
480 SYMBOL 242,38,38,40,16,44,64,0,0 [B2FA3
490 SYMBOL 243,0,192,64,32,120,124,40,0 [0E0A3
500 SYMBOL 244,0,28,62,94,62,20,20,0 [3BE03
510 SYMBOL 245,28,42,20,73,62,20,20,54 [0FB03
520 SYMBOL 246,0,24,36,24,24,60,0,0 [0D74]
530 SYMBOL 247,0,0,28,8,28,20,0,0 [91B2]
540 SYMBOL 248,0,0,24,24,24,24,0,0 [200A3
550 SYMBOL 249,0,0,0,24,24,0,0,0 [70363
560 SYMBOL 250,0,0,0,0,8,0,0,0 [AB603
570 SYMBOL 251,62,93,107,119,107,93,62,0 [639A3
580 REM **** LEGENDE **** [BA8A3
590 PEN 2:BORDER 3:MODE 1:LOCATE 6,1:PRI NT"S P I EL—LEGEND E":LOCATE 5,2:PRINT STRING*(27,CHR*(154)) [2E6A3
600 LOCATE 1,4:PRINT CHR*(240)}TAB(5)"normales Spielfeld (gruen)" [D1EA3
610 LOCATE 1,6:PRINT CHR*(251);TAB(5)"einmal betretenes Feld" [3562]
620 LOCATE 1,8:PRINT CHR*(240);TAB(5)"Maulwurfloch (schwarz)" [B9783
630 LOCATE 1,10:PRINT CHR*(203);TAB(5)"Maulwurf unter Erde" [2F74]
640 LOCATE 1,12:PRINT CHR*(245);TAB(5)"-><2 SPACE>FELI X f 2 SPACEX-" [39DC3
650 LOCATE 1,14:PRINT CHR*(241);TAB(5)"Blume 1[5 SPACE3: 10 Punkte" [6172]
660 LOCATE 1,16:PRINT CHR*(242);TAB(5)”Blume 2[5 SPACE): 20 Punkte" [6F7E3
670 LOCATE 1,18:PRINT CHR*(243);TAB(5)"Rasenmaeher : 50 Punkte" [DDD4]
680 LOCATE 1,20:PRINT CHR*(244);TAB(5)"Maulwurf[4 SPACE): 100 Punkte" [A3B2]
690 PEN 3:LOCATE 5,23:PRINT"Spielbeginn: Leertaste druecken" [E6783
700 LOCATE 13,25:PRINT CHR*(164)j" Gerd Schroeder" [A074]
710 a$=INKEY*:IF a$<>" " THEN 710 [CAE2]
720 leben-3:level-1:pkte-0 [0894]
730 REM **** SPIELFELDAUFBAU **** [2D34]
740 MODE OiBORDER 0:SOUND 4,120,600,15,2.2 [2BBC3
750 PEN 1:F0R k-l TO 22:LOCATE l,k:PRINT
STRING*(20,CHR*(240)):NEXT k [43B03
760 WINDOW #1,1,20,23,25:PEN #1,4:PAPER #1,5:CLS #1 [EE403
770 PRINT #1,"Level ";:PRINT #1,USING "#. #";level;:PRINT #1,"(4 SPACEJLeben "I STRING*(1 eben-1,CHR*(245))jSTRING*« 3-1 eben," ") [8CB2]
780 LOCATE #1,1,3:PRINT #l,"Punkte<6 SPA CE)Zeit 99":LOCATE #1,7,3:PRINT #l,p kte [8CF4]
790 FOR k-l TO 20:F0R 1-1 TO 22:feld(k,l>-240:feldfa(k,l)=l:NEXT 1,k [2C7A3
800 PEN 2 [47DA3
810 r=243:FOR k-l TO 3:G0SUB 910:NEXT k [8652]
820 r=242:FOR k-l TO 8:G0SUB 910:NEXT k [385C3
830 r-241:FOR k-l TO 10:G0SUB 910:NEXT k [8AAE3
840 IF 1evel=1 THEN 920 [A7F63
850 IF 1evel<5 THEN 1-<1evel-1)*8 ELSE 1 -24+<1evel-4)*5 [5504]
860 PEN 7»FOR k-l TO <level-l>«8 [ED3C3
870 x1=INT(RND*20)+1:yl-INT <RND*22) +1::S OUND 4,200,1,15:IF feldfa<xl,yl)<>1 THEN 870 [OB2C3
880 LOCATE xl,yl:PRINT CHR*(240)*feidfa(xl,vl)-7 [4564]
890 NEXT k [47163
900 GOTO 920 [DA5A3
910 xg=INT(RND*20)+l:yg-INT(RND*22)+l:S0 UND 4,60,1,15:IF feld(xg,yg><>240 TH EN 910 ELSE feld(xg,yg)-r:feldfa(xg, yg)-2:LOCATE xg,yg:PRINT CHR*<r):RET URN [C4503
920 xx-INT (RND*20)+l:yy=INT(RND*22)+l:IF feld (xx,yy> < >240 THEN 920 [E1C03
930 xmu-INT (RND*20) + 1: ymu=INT (RND*22) -*-1: IF feld(xx ,yy> < >240 OR(xmu-xx AND ym u=yy) THEN 930 [09D63
940 LOCATE xx,yy:PEN 9:PRINT CHR*(245):LOCATE xmu,ymu: PRINT CHR* (203) C725C3
950 FOR z-1 TO 3000:NEXT z:FOR k=l TO 7:SOUND 4,70,5,15:F0R z*l TO 80:NEXT z ,k:BORDER 3 [32403
960 EVERY 140-(1evel-1)*5,1 GOSUB 1220:EVERY 60,2 GOSUB 1510 [F3C83
970 zei t=99:sym=0 [3A563
980 REM **** BEWEGUNG FELIX **** [9382]
990 FOR k-l TO 3:DI [19FE3
1000 IF k*2 OR k-3 THEN FOR z-1 TO 50:NEXT z [2FBE3
1010 xv«0:yv-0 [41A63
1020 IF INKEY(73)—O THEN yv-liGOTO 1060 [71C03
1030 IF INKEY (72) —O THEN yv—lsGOTO 1060 [5C1A3
1040 IF INKEY(75)-O THEN xv«l*GOTO 1060 [82C63
1050 IF INKEY (74)-O THEN xv— 1 [176C3
1060 IF xx+xv>20 OR xx+xv<l OR yy+yv>22 OR yy+yv<l OR (xv-0 AND yv-0> THEN 1130 [1A5E 3
1070 IF leid(xx,yy> >239 AND feld(xx,yy)<244 THEN PEN 3:LOCATE xx,yy:PRINT C HR* (251 >: f el d (xx ,yy >-251: fel df a (xx , yy)-3:GOTO 1090 [CE6E3
1080 IF feldfa(xx,yy)-3 THEN PEN 7:L0CAT E xx,yy:PRINT CHR*(240):pkte-pkte-5 s-feld (xx ,yy>=240:feldfa(xx ,yy)=7:S0 UND 1,50,10,13 [61B4]
1090 xx-xx+xv:yy-yy+yv:IF feldfa(xx,yy)=7 THEN 1270 [22D83
1100 PEN 6:LOCATE xx,yy:PRINT CHR*(245): IF feldfa(xx,yy)-2 THEN SOUND 1,80-(feld(xx,yy>-240)*20,40,15,l:pkte«p kte+p (feld (xx ,yy) -240) : sym=sym+1 [59B03
1110 IF %ym-21 THEN 1430 [0E84]
1120 IF feldfa(xx,yy)-8 THEN SOUND 1,150 ,100,15,5,5: pkte=pkte+100: feld(xx,y y) =240: f el df a (>:x ,yy)-7:m-0 [8814 3
1130 LOCATE #1,7,3:PRINT #1,pkte:GOSUB 1330:EI:NEXT k [15B63
1140 REM #*** BEWEGUNG MAULWURF ***« [OBC2]
1150 DI:LOCATE xmu,ymu:PEN feldfa(xmu,ymu):PRINT CHR*(feld(xmu,ymu)) [AC7C3
1160 IF xx<xmu AND xmu>l THEN xmu-xmu-1 [EC6E3 1170 IF xx>>:mu AND xmu<20 THEN xmu=xmu+l [CBCE3
1180 IF yy<ymu AND ymu>l THEN ymu=ymu-l [E17E3 1190 IF yy>ymu AND ymu<22 THEN ymu=ymu+l [B0E2]
1200 PEN 9:LOCATE xmu,ymu:PRINT CHR*(203)sIF xmu=xx AND ymu-yy THEN 1270 [6F4C3
1210 EI:GOTO 980 [BC4C3
1220 REM **** MAULWURFLOECHER **+* [5BDC3
1230 x1 = INT(RND*20> >1:yl = INT(RND*22>+1:I F (x1—xx AND yl—yy) OR feldfa(xl,yl)—7 THEN 1230 [A132]
1240 IF feldfa(xl,yl)-2 THEN sym-sym+l [B6CE3
1250 IF sym=21 THEN 1430 [E88E3
1260 LOCATE xl,yl:PEN 7:PRINT CHR*(240): feld <xl,yl)=240:feldfa(xl,yl)-7:S0U ND 4,800,80,13,3:RETURN [406A3
1270 REM **** FALL IN MAULWURFLOCH **** [981A3
1280 ff-REMAIN(1):ff=REMAIN(2):m-0:PEN 6:SOUND 1,100,380,15,4,4 [8A4A3
1290 FOR k-245 TO 250 [E3603
1300 LOCATE xx,yy:PRINT CHR*(k):FOR z-l TO 600:NEXT z,k [7274]
1310 PEN 7:LOCATE xx,yy:PRINT CHR*(240):SOUND 1,200,100,13,1.,15:1eben=lebe n-1:IF leben-0 THEN GOSUB 1380:G0T0 1530 [91783
1320 GOSUB 1380-.GOTO 730 [97FE3
1330 REM **** MAULWURF AN OBERFLAECHE ? **** [3F583
1340 a=RND:IF m=l AND a>0.97 THEN 1370 [C0D03
1350 IF a>0.03 OR m=l OR xl=0 OR yl-0 THEN RETURN [D7D03
1360 xm=xl:ym=yl:PEN 8:LOCATE xm,ym:PRIN T CHR*(244):feld(xm,ym)=244:feldfa( xm,ym)=8:m=1:SOUND 2,120,20,15,,6:R ETURN [3A02]
1370 PEN 7:LOCATE xm,ym:PRINT CHR*(240): feld(xm,ym)=240:feldfa(xm,ym)-7:m-0 :SOUND 2,20,20,15,,7:RETURN [138A3
1380 REM **** BILD AUSBLENDEN **** [39383
1390 FOR k-l TO 50:v=RND*21+l:w=RND*21+ 1 :hg-zeile(v):zei1e(v)=zeile(w):zeil e(w)-hg:NEXT k [07263
1400 PEN O:FOR k-l TO 25 [9AFB3
1410 LOCATE 1,zeile(k):PRINT STRING*(20,CHR*(143)):SOUND 4,80+10*zei1e(k),5 ,13 [E084]
1420 FOR z-1 TO 30:NEXT z,k:RETURN [78C03
1430 REM **** NAECHSTER LEVEL **** [8F62]
1440 ff«REMAIN(1):ff-REMAIN(2):m-0:L0CAT E #1,7,3:PRINT #1,pkte:SOUND 4,200,500.15.. 8:F0R k-l TO 3:F0R 1-1 TO 1 1:FOR z-1 TO 15:INK 0,1:INK 1,1+2:I NK 3,1+5:BORDER 1+6:NEXT z,l,k:INK 0,3:INK 1,9:INK 3,15:BORDER 3 [51403
1450 FOR k-zeit TO 1 STEP -1 [A9863
1460 zeit-zeit-1:LOCATE #1,18,3:PRINT #1 ,USING "##"jzeit:SOUND 4,30+zeit,l, 14:pkte=pkte+l:LOCATE #1,7,3:PRINT #1,pkte [37BE3
1470 NEXT k [A36C3
1480 1evel=1evel+1:zeit=99:GOSUB 1380 [2602]
1490 PEN 2:FOR k-l TO 5:LOCATE 6+k,12:PR INT MID*("LEVEL",k,1):SOUND 4,200-k *20,30,14,1:FOR z-1 TO 300:NEXT z,k :PEN 9:LOCATE 13,12:PRINT 1evel:SOU ND 4,100,80,15,5,5 [603A3
1500 FOR z-1 TO 3000:NEXT z:GOTO 730 [OA763
1510 REM ***« ZEITBONUS **** [AE7C3
1520 zeit-zeit-1:LOCATE #1,18,3:PRINT #1 ,USING "##•'; zei t: IF zeit-0 THEN 127 O ELSE RETURN [D8EE3
1530 REM **** HIGH-SCORE-TABELLE **** [D0D83
1540 SPEED INK 30,20:IF pkte<pu(7> THEN
1680 [E9E4]
1550 CLS:PEN 2:PRINT"Du{3 SPACE>bistI3 S PACE)in<3 SPACE)der":PRINT:PRINT "H igh Score Tabelle PRINT:PRINT:PRINT [18C2]
1560 RESTORE 1710:FOR k-l TO 12:READ s:R EAD t:SOUND 1,s,50,14:SOUND 4,t,50,14:NEXT k [73BC3
1570 PEN 8:PRINT "Bitte Namen eingeben": PRINT"(Max. 14 Buchstaben)":PRINT:P RINT:PEN 9 [A51E3
1580 a$—INKEY*:IF a$<>"" THEN 1580 IE77A3
1590 aname*(8)-""xpu(8)—pkte:INPUT "",an ame*(8):IF LEN(aname*(B>)>14 THEN 1 550 [C3CC 3
1600 FOR 1-1 TO 7 [09C4]
1610 h-pu(1):nr=l:ah$=aname*(1> [F672]
1620 FOR k=l+l TO 8 [42F63
1630 IF pu(k)<h THEN 1650 [A632]
1640 h«pu(k):nr=k:ah$=aname*(k) [A572]
1650 NEXT k [056C3
1660 pu(nr)=pu(1):pu(1)-h:aname*(nr)=aname*(1):aname*(1)-ah$ IFBB63
1670 NEXT 1 [A772]
1680 CLS:PEN 9:PRINT" HIGH SCORE TABELLE ":PEN 2:PRINT STRING*(20,CHR*(154)) [9FC63
1690 FOR k-l TO 7:LOCATE 1,k*3+2:PRINT a name*(k):LOCATE 15,k*3+2:PRINT pu(k ):PRINT:SOUND 2,120,2,15:NEXT k:LOCATE 3,25:PRINT"Spiel: Leertaste" [A914]
1700 a$-INKEY*:IF a$-H " THEN SPEED INK 15.15:GOTO 720 ELSE 1700 [C7683
1710 DATA 119,478,95,379,95,379,106,426,89,358.89,358,71,0, 95,0,89,358,106,379,119,478,119,478 [6092]