Adventure
von DAVID KASTRUP
100 REM *********************************
110 REM * *
120 REM * SWORDS AND SORCERY *
130 REM * -------------------- *
140 REM * *
150 REM * DIESE VERSION STAMMT *
160 REM * VON DAVID KASTRUP *
170 REM * *
180 REM *********************************
190 REM
200 REM
210 REM AENDERUNGEN
220 REM ~~~~~~~~~~~
230 REM Bei der Anpassung an andere Rechen-
240 REM geschwindigkeiten als 4Mhz ohne Wait-
250 REM zyklen sind alle Zeitschleifen zu
260 REM aendern. Diese sind an der Laufvar-
270 REM iablen T9 zu erkennen. Aenderung
280 REM und Auflistung von den Graphiken
290 REM ist praktisch nur mit R+L moeglich.
300 REM Im Programm selbst fehlt praktisch
310 REM Kommentar.
320 REM Viel Spass !
330 REM
1000 CLS:SCREEN8,16
1010 PRINT"D E R Z A U B E R W A L D . . ."
1020 SCREEN1,1
1030 PRINTTAB(16)"LETREADLETJJLETJREADJJLETREADJJJJLETREADJJJJLETJJREAD JJJ"
1040 PRINTTAB(13)"LETREADLETREADLETJ LETREADLETREADLETJJLETREADJLETREADJJLETREADLETJJREADINPUT JJJDIMINPUT"
1050 PRINTTAB(12)"LETJJREADREADJLETREADJLETJJREADLETJJJLETREADLETREADJJJREADLETJREAD LETJJDIMINPUT"
1060 PRINTTAB(12)"LETJJREADLETREADJJLETREADJJLETREADJREADLETLETREAD LETJJREAD LETJJJDIMINPUTJ LET"
1070 PRINTTAB(11)"LETJJJLETJJREADLETJJREADLETJJREADJREADLETJREADLETJREADLETREAD LETJJREAD DIMINPUTJ"
1080 PRINTTAB(11)"LETJJDIMLETJJREADINPUTJJREADLETJJREADJ LETJREADLETREADLETREADJLETREADINPUTJJJLETLETREA D"
1090 PRINTTAB(11)"LETJJLETJJJJREADJJREAD JJGOTOLETREADJJREADLETJJLETJJREADLETJREADLETJJ"
1100 PRINTTAB(10)"LETJJJLETJJJJREADJJJREADGOTO ESTORELETJJREADLETREADLETJJLETJJREADJJLETJJJ"
1110 PRINTTAB(12)"JLETJJJJJJREADJGOTO DATA LETJJREAD LETJJLETJJJJREADINPUTLETJJJ"
1120 PRINTTAB(16)"JJ DATA DATA LETJJJJREADLETJJLETJJJJREADLETJJJJ"
1130 PRINTTAB(12)"LETREAD RESTOREGOTO DATA LETJJJJREAD LETJJJJJJREAD JJ"
1140 PRINTTAB(11)"LETJJREAD DATA LETREAD LETJJJJJJREAD JJ"
1150 PRINTTAB(11)"LETJJREADRESTOREGOTO LETJJREAD JJ"
1160 PRINTTAB(10)"LETJJJJREAD LETJJREAD"
1170 GOSUB15010
1180 PRINT,"Senke deine Hand ...";
1190 IFUSR(0)*RND(1)=0GOTO1190
1200 DEFFNZ(X)=INT(RND(1)*X)+1
1210 DATAZACK ,BOING ,ZISCH ,WUSCH ,"BING "
1220 DATADOING ,PLING :WIDTH255
1230 DIMX(52),Y(52)
1240 RESTORE:FORX=1TO7:READB$(X):NEXT:FORX=1TO52
1250 READX(X),Y(X):NEXT:XX=9:YY=10
1260 FORX=0TO10:READP(X):NEXT:GOTO1390
1270 CLS:SCREENXX,YY:PRINT"S W O R D S &";
1280 PRINT" S O R C E R Y":PRINT:RETURN
1290 RETURN
1300 FORT9=1TO300:NEXT:RETURN
1310 FORT9=1TO600:NEXT:RETURN
1320 FORT9=1TO1800:NEXT:RETURN
1330 FORT9=1TO3000:NEXT:RETURN
1340 FORT9=1TO6000:NEXT:RETURN
1350 GOSUB15040:IFIN=74ORIN=78THENRETURN
1360 GOTO1350
1370 GOSUB15040:IN=IN-48:IFIN<1ORIN>PAGOTO1370
1380 PA=2:RETURN
1390 PN=FNZ(9):GOSUB1310:CLS
1400 IFFNZ(PN)*2>FNZ(PN)*FNZ(2)GOTO1450
1410 GOSUB1270:PRINT"Eine Brunnenelfe hat sich ls ";
1420 PRINT"Fuehrer angeboten":PRINT,"Nimmst du n ?"
1430 GOSUB1350:GOSUB1310:IFIN=74THENF=1:GOTO1450
1440 IFRND(1)>.2THENGOSUB1270:GOSUB2790:GOSUB1330
1450 XX=9:YY=9:GOSUB1270
1460 W=F:PRINT"Es gibt drei Wege, die in den ";
1470 PRINT"Finsterwald":PRINT"fuehren. Nur einer fuehrt";
1480 PRINT" zum Ziel, die":PRINT"anderen sind voller un";
1490 PRINT"bekannter Gefahren.":PRINT:C=FNZ(3)
1500 Y=FNZ(3):IFRND(1)>.4THENY=C
1510 PRINT"Willst du das grosse Orakel befragen?"
1520 GOSUB1350:IFIN=78GOTO1660
1530 YY=9:GOSUB1270:PRINT:PRINT"Aha! Um den Vielfrass gut";
1540 PRINT" zu stimmen, und die":PRINT"benoetigte Hilfe";
1550 PRINT" zu erhalten, muss man ihn erst"
1560 PRINT"saettigen.":PRINT:PRINT"Wie viele Jungfrauen";
1570 PRINT" sollen geopfert werden?":PA=9:GOSUB1370:MD=IN
1580 IFFNZ(MD)*MD>=FNZ(PN)*PNGOTO1610
1590 PRINT:PRINT" Oh, oh, das Orakel ist erzuernt !"
1600 K=K-1:GOTO1620
1610 IFRND(1)>.4-MD/10GOTO1630
1620 PRINT"Die Zeichen sind unklar . . .":PRINT:GOTO1650
1630 PRINT:PRINT" Das Orakel sagt, Pfad";Y
1640 PRINT" ist der Weg der Wahrheit.":P=1
1650 IFFANDFNZ(MD)>FNZ(PN)*FNZ(PN)THENGOSUB2790
1660 PRINT:PA=3:PRINT" Waehle Pfad 1, 2 oder 3"
1670 GOSUB1370:X=IN:L=FNZ(100)+100
1680 K=K+1:IFX<>CTHENK=K-2:L=L+50
1690 K=K+.5*RND(1)+F+P+.2*MD*SGN(5.1-MD):DT=L
1700 YY=16:GOSUB1270:SCREEN1,3
1710 PRINT:PRINT"Du bist zu einer Gabelung des fades";
1720 PRINT" gekommen":C=FNZ(2):Z=W-F
1730 S=8-Z-G/(1+Z):IFS<4THENS=4
1740 IFFNZ(3)>KTHENL=L+1
1750 L2=7+FNZ(20):LO=L2:IFF=0GOTO1800
1760 PRINT"Vielleicht moechtest du die Nymphe fragen?"
1770 GOSUB1350:IFIN=78GOTO1850
1780 IFRND(1)>.5+K/50THENPRINT"Sie weiss es icht.":GOTO1850
1790 PRINT"Sie sagt Pfad ";C:GOTO1850
1800 PRINT"Willst du das Los entscheiden lassen?"
1810 GOSUB1350:IFIN=78GOTO1850
1820 PRINT"Das Los faellt auf Pfad";:X=C
1830 IFRND(1)>.5+K/10THENX=3-C
1840 PRINTX
1850 PRINT"Auf welchem Pfad willst du deine Reise"
1860 PRINT"fortsetzen, Pfad 1 oder 2 ?"
1870 GOSUB1370:B=0:X=IN
1880 IFX=CTHENK=K+RND(1)*SGN(.5-RND(1)):D=0:GOTO1900
1890 K=K-.2:D=-1
1900 L2=L2-S
1910 I=I+1:IFEORRND(1)>.15+.2*FGOTO1960
1920 PRINT:PRINT" Was fuer ein Glueck ! Du bist auf";
1930 PRINT" eines":PRINT"der sagenumwobenen, magischen ";
1940 PRINT"Schwerter aus":PRINT"alten Zeiten gestossen !"
1950 K=K+.2:E=1:PRINT:GOSUB1320
1960 IFRND(1)-.5*(F+D)<.95GOTO2060
1970 PRINT:ONFNZ(4)GOTO2000,2020,2040
1980 PRINT:PRINT"Eine Schlange hat dich gebissen !!!"
1990 PRINT:GOSUB2830:GOTO2060
2000 PRINT"Du bist in ein Hornissennest getreten !!!"
2010 GOTO1990
2020 PRINT"Du bist einen Hang hinabgestuerzt !!!"
2030 GOTO1990
2040 PRINT"Du hast dir einen Dorn in deinen Fuss"
2050 PRINT"getreten !!!!":GOTO1990
2060 T=T+1:IFRND(1)<.15GOTO2730
2070 IFRND(1)>.8+(K+D)/30THENGOSUB4010:GOSUB1320
2080 IFRND(1)>.95THENGOSUB5580:GOSUB1320
2090 IFRND(1)>.92THENGOSUB8010
2100 IFRND(1)<.03THENGOSUB5010:GOSUB1320
2110 IFRND(1)<.4GOTO2730
2120 PT=0:IFRND(1)>.97THENGOSUB7010
2130 IFRND(1)<.2THENGOSUB7010:GOSUB1320
2140 IFRND(1)<.96GOTO2170
2150 IFM<=0THENGOSUB7010:GOTO2170
2160 GOSUB9010
2170 IFRND(1)>.98+(K-I/10)/100THENGOSUB5510
2180 IFWANDRND(1)>.95+(K+D)/50THENGOSUB4510:GOSUB1320
2190 IFRND(1)<.75GOTO2710
2500 REM *GOLD*
2510 PRINT:PRINT"Was liegt da neben dem Weg ?":GOSUB1320
2520 PRINT:PRINT" Eine Truhe ! ! !":GOSUB1320
2530 PRINTTAB(10);"GOLD !!!":GOSUB1330
2540 GOSUB1270:SCREEN1,3
2550 PRINTTAB(9)"RESTOREGOTOIFRESETRESETRUNIFRESETRESETRESETRESETRESETRESETRESETRESETRESETRESETRESETRESETRUNIF"
2560 PRINTTAB(9)"DEFLINESIFRESETRESETNEXT NEXTGOTORUNGOTORUNGOTORUNGOTORUNGOTORUNGOTORUNGOTONEXT"
2570 PRINTTAB(9)"DEFRUNIFRESETRUNIFRESETRESETNEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXT"
2580 PRINTTAB(9)"DEFNEXTDATANEXTIFABSRESETRUNCLSLINESLINESLINESLINESLINESLINESLINESLINESLINESLINESLINESLINESLINESLINES"
2590 PRINTTAB(9)"DEFDATANEXTDATANEXTRUNIFABS ABSABS ABS ABS ABSRUNIF"
2600 PRINTTAB(9)"DEFNEXTDATANEXTDATANEXTDATANEXTIF ABS ABS ABS ABSRUNIF"
2610 PRINTTAB(10)"RUNNEXTDATANEXTDATANEXTDATADEFDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDEF"
2620 PRINTTAB(12)"RUNIFNEXTDATANEXTDEFNEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDATADEF"
2630 PRINTTAB(14)"RUNNEXTDATADEFDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDEF"
2640 PRINTTAB(16)"RUNDEFNEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDATANEXTDATADEF"
2650 PRINTTAB(18)"RESETRESETRESETRESETRESETRESETRESETRESETRESETRESETRESETRESETRESETRESET "
2660 FORX=1TO50:Z=P(INT(RND(1)*11)):POKEZ,185:FORT9=1TO30
2670 NEXT:POKEZ,184:FORT9=1TO100:NEXTT9,X
2680 GC=FNZ(PN)*FNZ(PN):PRINT" Es sind";GC;
2690 PRINT"Stueck Gold.":G=G+GC:DS=DS-GC*.0001
2700 GOSUB1320:GOSUB1270:SCREEN1,2
2710 IFT>10-2*FTHENGOSUB2840
2720 IFRND(1)<.05THENPRINT"Du triffst ein Sklavenmaedchen":W=W+1:M=M+1