kaefer_sss.tap
kaefer_sss.z80
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

   10 CLS
   20 PRINT "       KAEFERJAGD"
   30 PRINT " "
   40 PRINT "  IN EINEM 10*10 QUADRAT BEFINDET"
   50 PRINT "  SICH EIN KAEFER ."
   60 PRINT "  DER KAEFER BEWEGT SICH ZUFAELLIG"
   70 PRINT "  IN HORIZONTALER BZW VERTIKALER"
   80 PRINT "  RICHTUNG EINEN SCHRITT ODER ER BLEIBT   STEHEN."
   90 PRINT "  IHR ZIEL IST ES,DEN KAEFER ZU FANGEN."
  100 PRINT "  SIE KOENNEN SICH BELIEBIG"
  110 PRINT "  IN HORIZONTALER BZW VERTIKALER"
  120 PRINT "  BZW DIAGONALER RICHTUNG BEWEGEN."
  130 PRINT "  IHRE AKTUELLE POSITION WIRD DURCH  AN  GEZEIGT."              
  140 PRINT "  BETRITT DER KAEFER DAS VON IHNEN        BESETZTE FELD,ENDET DAS "
  150 PRINT "  SPIEL FUER SIE WEGEN TOD DURCH  KAEFER  BISS.":PAUSE 200
  160 PRINT "  HABEN SIE SICH DEM KAEFER BIS AUF DREI  SCHRITTE GENAEHERT," 
  170 PRINT "  ERTOENT 1 SIGNAL,BEI 2 SCHRITTEN 2,BEI  1 SCHRITT 3 SIGNALE."
  180 PRINT
  190 PRINT "  SIE KOENNEN 5 SCHWIERIGKEITSGRADE"
  200 PRINT "  WAEHLEN."
  210 PRINT "   1-ALLE MOEGLICHEN KAEFERPOSITIONEN"
  220 PRINT "     WERDEN DURCH  ANGEZEIGT,"
  230 PRINT "     ALLE VORHERGEHENDEN WERDEN DURCH       ANGEZEIGT."
  240 PRINT "   2-WIE 1,ZUSAETZLICH WERDEN 4 FALLEN"
  250 PRINT "     GESTELLT,GERATEN SIE IN EINE FALLE"
  260 PRINT "     IST DAS SPIEL FUER SIE BEENDET."
  270 PRINT "   3-WIE 2,NACH IHREM 3.SCHRITT DUERFEN"
  280 PRINT "     SIE SICH NUR NOCH JEWEILS EINEN"
  290 PRINT "     SCHRITT BEWEGEN."
  300 PAUSE 200
  310 PRINT "   4-WIE 3,DIE ANZEIGE DER VORHERIGEN"
  320 PRINT "     KAEFERPOSITIONEN ENTFAELLT." 
  330 PRINT "   5-WIE 4,DIE ANZEIGE DER AKTUELLEN"
  340 PRINT "     KAEFERPOSITIONEN ENTFAELLT."
  350 PRINT "  NACH 100 ERFOLGLOSEN SCHRITTEN WIRD"
  360 PRINT "  DAS SPIEL ABGEBROCHEN."
  370 PRINT:PRINT:PRINT:PRINT:PAUSE 200:CLS
  380 PRINT "              VIEL ERFOLG!"
  390 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
  400 EM=E:XM=XG:YM=YG:XG=X2:YG=Y2:E=E2:ZV=32:ZK=32:GOSUB 1370:E=EM:XG=XM:YG=YM:
  401 GOSUB 1370
  405 INPUT " SCHWIERIGKEITSGRAD EINGEBEN";SG
  410 CLS
  420 WINDOW 0,23,25,39
  430 GOTO 1120
  440 IF SG=1 THEN GOTO 490
  450 REM BERECHNUNG DER FALLEN
  460 FOR I=1 TO 4
  470 XF(I)=INT(9*RND(1)):YF(I)=INT(9*RND(1))
  475 REMPRINTXF(I);YF(I)
  480 NEXT I
  490 REM BERECHNUNG DER KAEFERKOORDINATEN
  500 XK=INT(9*RND(1)):YK=INT(9*RND(1))
  510 REMPRINT"XKAEFER=";XK:PRINT"YKAEFER=";YK
  520 XS=0:YS=0:N=1
  530 PRINT "GEBEN SIE IHRE KOORDINATEN AN!"
  540 INPUT "     X =";X
  550 INPUT "     Y =";Y:CLS
  560 X=INT(X):Y=INT(Y)
  565 IF SG<3 THEN GOTO 590
  570 IF N<4 THEN GOTO 590
  575 A=ABS(X-XS):A1=ABS(Y-YS)
  578 IF A1>A THEN A=A1
  580 IF A>1 THEN GOTO 990
  590 ZV=32:ZK=32
  600 EM=E:XM=XG:YM=YG:E=E2:XG=X2:YG=Y2
  610 GOSUB 1370
  620 E=EM:XG=XM:YG=YM
  630 GOSUB 1370
  640 IF X>-1 AND X<10 AND Y>-1 AND Y<10 THEN GOTO 664
  650 PRINT " SIE VERLASSEN DAS SPIELFELD! BITTE NOCH     EINMAL!"
  660 GOTO 530
  664 IF X=XK AND Y=YK THEN GOTO 1050
  666 GOSUB 1680
  710 E2=E:X2=XG:Y2=YG:XS=X:YS=Y:XG=X:YG=Y
  720 REM BERECHNUNG DES ABSTANDES
  730 E=ABS(XS-XK)
  740 E1=ABS(YS-YK)
  750 IF E1>E THEN E=E1
  760 REM TEST AUF FALLE
  770 IF SG=1 THEN GOTO 810
  780 FOR I=1 TO 4
  790 IF ABS(XS-XF(I))+ABS(YS-YF(I))=0 THEN GOTO 1030
  800 NEXT I  
  810 IF E=0 THEN PRINT:PRINT "TOD DURCH      KAEFERBISS!!":PRINT:GOTO 1070
  820 IF E=3 THEN GOTO 880
  830 IF E=2 THEN GOTO 870
  840 IF E=1 THEN GOTO 860
  850 GOTO 890
  860 BEEP:PAUSE 5 
  870 BEEP:PAUSE 5 
  880 BEEP
  890 PRINT " DAS WAR IHR  ";N;"-TER SCHRITT"
  900 N=N+1
  905 IF SG=5 THEN GOTO 920
  910 IF N=2 GOTO 980
  920 IF N>100 THEN GOTO 1070
  930 IF SG>3 THEN GOTO 960
  940 EM=E:XM=XG:YM=YG:XG=X2:YG=Y2:E=E2:ZV=32:ZK=191
  950 GOSUB 1370:E=EM:XG=XM:YG=YM
  960 IF SG<5 THEN GOTO 980
  970 POKE -4315+2*XG-80*YG,255:GOTO 530
  980 ZV=255:ZK=138:GOSUB 1370:GOTO 530
  990 PRINT "DUSSEL, NUR    EINEN SCHRITT!"
 1000 PRINT "SIE SOLLTEN    AUFMERKSAMER   SPIELEN!"
 1010 GOTO 540
 1030 PRINT "SIE SIND IM    ";N;"-TEN SCHRITTIN EINE FALLE  GERATEN!"
 1032 PRINT "PECH GEHABT!"
 1040 GOTO 1070
 1050 PRINT "GRATULATION,   SIE HABEN DEN  KAEFER NACH"
 1060 PRINT  N;"-SCHRITTEN  GEFANGEN!"  
 1070 PRINT "WOLLEN SIE NOCHEINMAL SPIELEN?"
 1080 INPUT "JA ODER NEIN   EINGEBEN";T$
 1090 IF T$="JA" THEN GOTO 400
 1100 WINDOW:CLS
 1110 END
 1120 FOR I=0 TO 9
 1130 POKE-4317-I*80,I+48
 1140 POKE-4235+2*I,I+48
 1150 NEXT I
 1160 POKE-4276,167:POKE-5076,168:POKE-5056,169:POKE-4256,170
 1170 FOR I=0 TO 9
 1180 FOR J=0 TO 10
 1190 POKE-4275+I*2-J*80,160         
 1200 NEXT J,I
 1210 FOR I=0 TO 10
 1220 FOR J=0 TO 9
 1230 POKE-4316+I*2-J*80,161
 1240 NEXT J,I
 1250 FOR I=0 TO 8
 1260 POKE-4274+2*I,162
 1270 POKE-5074+2*I,164
 1280 POKE-4356-80*I,163
 1290 POKE-4336-80*I,165
 1300 NEXT I
 1310 FOR I=0 TO 8
 1320 FOR J=0 TO 8
 1330 POKE-4354+2*I-80*J,166
 1340 NEXT J,I
 1350 GOTO 440
 1360 END   
 1370 MP=-4315+2*XG-80*YG
 1380 POKE MP,ZV
 1390 IF YG-E<0 THEN GOTO 1460
 1400 US=MP+E*80
 1410 POKE US,ZK
 1420 FOR I=1 TO E
 1430 IF XG+I<10 THEN POKE US+I*2,ZK   
 1440 IF XG-I>-1 THEN POKE US-I*2,ZK
 1450 NEXT I
 1460 IF YG+E>9 THEN GOTO 1530
 1470 OS=MP-E*80
 1480 POKE OS,ZK
 1490 FOR I=1 TO E
 1500 IF XG+I<10 THEN POKE OS+I*2,ZK
 1510 IF XG-I>-1 THEN POKE OS-I*2,ZK
 1520 NEXT I
 1530 IF XG-E<0 THEN GOTO 1600
 1540 LS=MP-E*2:POKE LS,ZK
 1550 IF E=1 THEN GOTO 1600
 1560 FOR I=1 TO E-1
 1570 IF YG+I<10 THEN POKE LS-I*80,ZK
 1580 IF YG-I>-1 THEN POKE LS+I*80,ZK
 1590 NEXT I
 1600 IF XG+E>9 THEN GOTO 1670
 1610 RS=MP+E*2:POKE RS,ZK
 1620 IF E=1 THEN GOTO 1670
 1630 FOR I=1 TO E-1
 1640 IF YG+I<10 THEN POKE RS-I*80,ZK
 1650 IF YG-I>-1 THEN POKE RS+I*80,ZK
 1660 NEXT I
 1670 RETURN   
 1680 REM BERECHNUNG DER NEUEN KAEFERKOORDINATEN
 1690 K=INT(5*RND(1))
 1700 IF K=1 THEN XK=XK-1
 1710 IF K=2 THEN YK=YK+1
 1720 IF K=3 THEN XK=XK+1
 1730 IF K=4 THEN YK=YK-1
 1740 IF XK>9 THEN XK=0
 1750 IF XK<0  THEN XK=9
 1760 IF YK>9 THEN YK=0
 1770 IF YK<0  THEN YK=9
 1780 REM PRINT"XKAEFER=";XK:PRINT"YKAEFER=";YK
 1790 RETURN