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

   10 DIM C$(40):DIM A(400):BORDER 1:PAPER 1:INK 3
   20 CLS
   30 TT=0
   40 INK 3:CR=0:LL=100
   50 DEF FN ZU(X)=INT(400*RND(I))+1
   60 PRINT:PRINT "****************************************"
   70 PRINT:PRINT TAB(15)"GANYMED":PRINT
   80 PRINT "****************************************"
   90 INPUT "WIRD EINE ANLEITUNG BENOETIGT ?(Y/N) ? ";A$
  100 IF A$="N"THEN 160
  110 CLS
  120 FOR I=1 TO 24:READ C$
  130 PRINT C$
  140 IF I>15 THEN PAUSE 20
  150 NEXT I:INPUT "START MIT >ENTER< !";A:CLS
  160 GOSUB 1430
  170 PRINT "SIE SIND JETZT AUF GANYMED GELANDET":PRINT
  180 PRINT "SIE SIND IN RAUM "
  190 OU=FN ZU(I)
  200 IF A(OU)<>ASC(".")GOTO 190
  210 OT=FN ZU(I)
  220 IF A(OT)<>ASC(".")THEN 210
  230 E=FN ZU(I)
  240 IF A(E)<>ASC(".") THEN 230
  250 A(E) = ASC(""):PRINT E
  260 OG=ASC("")
  270 IF INKEY$=" " THEN RETURN
  280 PRINT
  290 PRINT "HIER IST EINE KARTE DER RAUEME !"
  300 PAUSE 40
  310 GOSUB 330
  320 GOTO 560
  330 CLS:PAPER 5:WINDOW 0,19,0,19:CLS:WINDOW:REM KARTE ZEIGEN
  340 FOR I=1 TO 400
  350 PRINT;INK 8;CHR$(A(I));
  360 IF 20*INT(I/20)=I THEN PRINT
  370 A$=INKEY$:IF A$=" "THEN A$="":PAPER 1:RETURN
  380 A$=""
  390 NEXT I
  400 WINDOW 0,23,21,37:PAPER 1:CLS
  410 PRINT;INK 2;"ERKLAERUNG :"
  420 PRINT
  430 PRINT;INK 7;" - SIE":PRINT
  440 PRINT "^- BEAM-STRAHLEN":PRINT
  450 PRINT "- VERSPERRT    ":PRINT
  460 PRINT "U- FALLGRUBE":PRINT
  470 PRINT "M- MONSTER":PRINT
  480 PRINT;INK 2;"- KRISTALL":PRINT
  490 PRINT " N"
  500 PRINT "WO"
  510 PRINT " S"
  520 FOR I=1 TO 8:PRINT AT(INT(E/20),E-1-20*INT(E/20));" " :PAUSE 3
  530 PRINT;INK 2;AT(INT(E/20),E-1-20*INT(E/20));"":PAUSE 3:NEXT I 
  540 WINDOW:CLS
  550 RETURN
  560 REM DIALOG
  570 CLS
  580 PRINT "KRISTALLANZAHL :";CR
  590 PRINT:PRINT;INK 6;"SAUERSTOFF FUER";LL;"RAEUME"  
  600 PRINT
  610 FOR I=0 TO 37
  620 PRINT "";
  630 NEXT I:PRINT
  640 PRINT "SIE BEFINDEN SICH IN RAUM:";E
  650 FOR I=0 TO 37:PRINT "";:NEXT I:PRINT
  660 PRINT:PRINT "LAGEMELDUNG DES COMPUTERS"
  670 PRINT:PRINT "NORDEN :",CHR$(A(E-20))
  680 PRINT "SUEDEN :",CHR$(A(E+20))
  690 PRINT "OSTEN  :",CHR$(A(E+1))
  700 PRINT "WESTEN :",CHR$(A(E-1))
  710 PRINT:PRINT "WELCHE RICHTUNG WOLLEN SIE GEHEN ?"
  720 PRINT "(N/S/O/W) ?":OG =E
  730 A$=INKEY$
  740 IF LEN(A$)=0 THEN 730
  750 BEEP:PRINT
  760 IF A$="N" AND A(E-20)<>ASC("")THEN E=E-20
  770 IF A$="S" AND A(E+20)<>ASC("")THEN E=E+20
  780 IF A$="O" AND A(E+1)<>ASC("")THEN E=E+1
  790 IF A$="W" AND A(E-1)<>ASC("")THEN E=E-1
  800 IF A$="@" THEN GOSUB 330
  810 A$=""
  820 IF A(E)= ASC("") THEN GOSUB 940
  830 IF A(E)= ASC("^") THEN GOTO 990
  840 IF A(E)= ASC("M") THEN GOSUB 1270
  850 IF A(E)= ASC("U") THEN GOTO 1050
  860 LL=LL-1
  870 IF LL=50 OR LL=20 THEN GOSUB 2220
  880 IF LL=0 THEN 1960
  890 A(OG)=ASC(".")
  900 A(E)= ASC("")
  910 IF RND(2)>.8 THEN GOSUB 330
  920 IF E=OT OR E=OU THEN 1670
  930 GOTO 560
  940 REM KRISTALL GEFUNDEN
  950 X=INT(RND(3)*3)+2:CR=CR+X:INK 2
  960 PRINT "SIE HABEN";X;" KRISTALLE GEFUNDEN,GESAMT :";CR
  970 PAUSE 20:INK 3
  980 CLS:RETURN
  990 REM BEAMSTRAHL
 1000 INK 6:PRINT "SIE WURDEN WEGGEBEAMT !"
 1010 E=FN ZU(I)
 1020 IF A(E)=ASC("")THEN 1010
 1030 PRINT "SIE BEFINDEN SICH JETZT IN RAUM :";E
 1040 PAUSE 40:CLS:INK 3:GOTO 830 
 1050 REM FALLGRUBE
 1060 CLS
 1070 PRINT:PRINT "SIE SIND IN EINE FALLGRUBE GEFALLEN !":PAUSE 15
 1080 FOR I=1 TO 24
 1090 X$=""
 1100 INK 2:PRINT STRING$(40,X$)
 1110 PRINT SPC(40)
 1120 NEXT I:INK 3
 1130 X=INT(RND(3)*10)+1
 1140 IF X>8 THEN CLS:PRINT:PRINT "ABER EIN MONSTER HAT SIE GERETTET !"
 1150 IF X>8 THEN Y=INT(RND(3)*CR)+1:PRINT:PRINT "ES VERLANGT DAFUER";Y;
 1160 IF X>8 THEN PRINT " KRISTALLE ":CR=CR-Y
 1170 IF X>8 THEN PAUSE 25:GOTO 860
 1180 CLS
 1190 BORDER 5:PAPER 5:PRINT:PRINT "SIE SIND AUSSERHALB VON GANYMED ."
 1200 PRINT:PRINT "ENDSTAND :";CR;" KRISTALLE"
 1210 PRINT:IF CR<30 THEN PRINT "DAS REICHT ABER NICHT,LEBEN SIE WOHL":GOTO 2160
 1220 PRINT:PRINT "DAS GENUEGT ZUM RUECKFLUG !
 1230 PRINT:PRINT "SIE ERHALTEN FUER DIE KRISTALLE";1.5*CR;"MILL.DOLLAR"
 1240 IF CR>TT THEN TT=CR
 1250 PRINT:PRINT "DER BESTE ERHIELT BISHER";1.5*TT;"MILL.DOLLAR"
 1260 GOTO 2160
 1270 REM BEGEGNUNG MIT MONSTER
 1280 K=INT(RND(3)*4)+1:INK 6
 1290 PRINT "SIE SIND EINEM MONSTER BEGEGNET" 
 1300 PAUSE 40
 1310 IF K<4 THEN PRINT "ES HAT SIE GESEHEN !"
 1320 PAUSE 20:  IF K<4 THEN GOSUB 2000
 1330 PRINT "ABER ES IST FREUNDLICH "
 1340 IF K=2 THEN S=INT(RND(3)*30)+1:PRINT "UND GIBT IHNEN";S;" KRISTALLE"
 1350 IF K=2 THEN CR=CR+S
 1360 IF K=3 THEN PRINT "UND NIMMT NUR"
 1370 IF K=3 AND CR>0 THEN S=INT(RND(0)*CR):ELSE S=0
 1380 IF K=3 THEN PRINT:PRINT;S;" KRISTALLE !":CR=CR-S
 1390 IF K>3 THEN PRINT "ES SCHLAEFT !"
 1400 PRINT "GESAMTSTAND";CR;"KRISTALLE"
 1410 PAUSE 40:INK 3
 1420 RETURN
 1430 CLS:PRINT "BITTE WARTEN":REM INIT-TEIL
 1440 FOR I=1 TO 400
 1450 A(I)=ASC(".")
 1460 IF I<=20 OR I>=380 THEN A(I)=ASC("")
 1470 IF I=20*INT(I/20)THEN A(I)=ASC("")
 1480 NEXT I
 1490 FOR I=21 TO 381 STEP 20:A(I)=ASC(""):NEXT I
 1500 FOR I=20 TO 380 STEP 20:A(I)=ASC(""):NEXT I
 1510 PRINT "BITTE WARTEN,BILDAUFBAU":REM HINDERNISSE
 1520 FOR I=1 TO 40
 1530 C=FN ZU(I)
 1540 IF A(C)=ASC(".") THEN A(C)=ASC(""):NEXT I:FOR I=1 TO 25
 1550 C=FN ZU (I)
 1560 IF A(C)=ASC(".") THEN A(C)=ASC("M")
 1570 C=FN ZU(I)
 1580 IF A(C)=ASC(".") THEN A(C)=ASC("^")
 1590 C=FN ZU(I)
 1600 IF A(C)=ASC(".")THEN A(C)=ASC("U")
 1610 NEXT I
 1620 FOR I=1 TO 80
 1630 C=FN ZU(I)
 1640 IF A(C)=ASC(".") THEN A(C)=ASC("")
 1650 NEXT I
 1660 RETURN
 1670 REM GEHEIMGANG
 1680 PAPER 6:CLS:PRINT " SIE SIND IN EINEM GEHEIMGANG !"
 1690 PAUSE 20:GOTO 1230
 1700 REM INSTRUKTIONEN
 1710 DATA "     INSTRUKTIONEN ZU GANYMED.II"
 1720 DATA ""
 1730 DATA ""
 1740 DATA "SIE BEFINDEN SIH AN BORD VON FLUG 7/18"
 1750 DATA "DER XYLENIUMSUCHFLOTTE,IHRE AUFGABE IST"
 1760 DATA "SOVIEL WIE MOEGLICH XYLENIUMKRISTALLE" 
 1770 DATA "ZU FINDEN UND DAMIT ZURUECKZUKEHREN ."
 1780 DATA "GANYMED BESTEHT AUS EINEM LABYRINTH"
 1790 DATA "VON 400 RAEUMEN."
 1800 DATA "SIE KOENNEN FOLGENDE UEBERRASCHUNGEN"
 1810 DATA "ERLEBEN :1.  VERSCHLOSSENE RAEUME"
 1820 DATA "         2.^  MATERIEBEAMER DIE SIE "
 1830 DATA "              WEGTRANSPORTIEREN"
 1840 DATA "         3.M  MONSTER DIE UNBERECHENBAR" 
 1850 DATA "              SIND."
 1860 DATA "         4.U  FALLGRUBEN, DURCH DIE SIE"
 1870 DATA "              HERAUSKOMMEN
 1880 DATA "
 1890 DATA "UND NATUERLICH AUCH KRISTALLE. AUCH " 
 1900 DATA "DIE MONSTER KOENNEN KRISTALLE GEBEN !"
 1910 DATA "IHR SAUERSTOFF REICHT FUER 100 RAEUME"
 1920 DATA "SIE BRAUCHEN MINDESTENS 30 KRISTALLE"
 1930 DATA "FUER DEN RUECKFLUG,VON DENEN JEDES"
 1940 DATA "KRISTALL AUF DER ERDE 1,5 MILL. DOLLAR BRINGT"
 1950 DATA "ICH WUNSCHE IHNEN VIEL GLUECK !"
 1960 PRINT;INK 2;"IHRE LEBENSERHALTUNGSSYSTEME SIND AUF NULL"
 1970 PRINT "IRGENDWANN WIRD EIN MONSTER SIE BEERDIGEN"
 1990 GOTO 2160
 2000 CLS
 2010 X$="":PRINT "ES KOMMT AUF SIE ZU !!"
 2020 PRINT AT(10,0);STRING$(40,X$)
 2030 PRINT AT(9,35);""
 2040 IF K=1 THEN FOR I=0 TO 34
 2050 IF K<>1 THEN FOR I=0 TO 33
 2060 PRINT AT(9,I);" &"
 2070 PAUSE 2
 2080 NEXT I
 2090 IF K<>1 THEN RETURN
 2100 FOR I=1 TO 30
 2110 PRINT STRING$(40,X$)
 2120 NEXT I
 2130 CLS
 2140 PRINT "ES HAT SIE GEFRESSEN"
 2150 GOTO 2160
 2160 PRINT "WOLLEN SIE NEU BEGINNEN(Y/N)?"
 2170 INPUT A$
 2180 IF A$="Y"THEN GOTO 40
 2190 CLS
 2200 PRINT AT(10,15);"NA DANN NICHT !"
 2210 PAUSE 100:CLS:END
 2220 FOR I=1 TO 10
 2230 PRINT;INK 2;AT(20,2);"DENKEN SIE AN DEN SAUERSTOFFVORRAT !!":PAUSE 3 :BEEP
 2240 PRINT AT(20,2);"                                     ":PAUSE 3
 2250 NEXT I
 2260 RETURN