init: CLS : CLEAR : TROFF: handling: PRINT "Du har hamnat i en grotta och m†ste ta dig ut." PRINT "Lycka till!" initiera: DIM komm$(16), rum(7, 4), io(2) FOR a = 1 TO 16: READ komm$(a): NEXT a FOR a = 1 TO 7 FOR b = 1 TO 4: READ rum(a, b): NEXT b NEXT a rum = 1: verb$ = "titta" GOTO titta kommando: order$ = "": verb$ = "": substantiv$ = "": b = 0 INPUT ">", order$ order$ = LCASE$(order$) IF order$ = "" GOTO kommando IF MID$(order$, 1, 1) = " " THEN GOTO kommando b = 0 FOR a = 1 TO LEN(order$) IF MID$(order$, a, 1) = " " THEN verb$ = (LEFT$(order$, a - 1)) substantiv$ = (MID$(order$, a + 1)) b = 1 GOTO gruff END IF NEXT a gruff: IF b = 0 THEN verb$ = order$ FOR a = 1 TO 16 IF verb$ = komm$(a) THEN ON a GOSUB go, go, go, go, dra, dra, dra, simma, titta, hjalp, info, sluta, skrik, nytt, spara, ladda NEXT a PRINT "Kommandot finns inte i verblistan" GOTO kommando handelse: IF rum = 2 THEN PRINT "Grattis!!!" PRINT "Du har hittat ut ur grottan." PRINT GOTO sluta END IF GOTO kommando kommandon: go: LET b = rum(rum, a) IF b = 3 AND a = 1 AND io(2) = 0 THEN PRINT "Tyv„rr „r lavafloden f”r bred att hoppa ”ver." GOTO handelse END IF IF b = 6 AND a = 1 AND io(1) = 0 THEN PRINT "Lavafallet „r iv„gen, och det g†r inte att g† runt det." GOTO handelse END IF IF b = 0 THEN PRINT "Du kan inte g† genom v„ggen." GOTO handelse END IF LET rum = b GOTO titta dra: IF substantiv$ = "stenen" AND rum <> 5 THEN PRINT "Det finns ingen sten h„r." IF substantiv$ = "stenen" AND rum = 5 AND io(1) = 1 THEN PRINT "Stenen sitter fast i lavafloden." IF substantiv$ = "stenen" AND rum = 5 AND io(1) = 0 THEN PRINT "Stenen rullar ner i lavafloden och blockerar den." io(1) = 1 END IF IF substantiv$ = "spaken" AND rum <> 6 THEN PRINT "Det finns ingen spak h„r." IF substantiv$ = "spaken" AND rum = 6 AND io(2) = 0 THEN PRINT "Spaken pekar nu ner†t.": z = 1 END IF IF substantiv$ = "spaken" AND rum = 6 AND io(2) = 1 THEN PRINT "Spaken pekar upp†t igen." z = 0 END IF io(2) = z GOTO handelse simma: IF rum = 3 OR rum = 4 OR rum = 5 THEN PRINT "Det „r inte nyttigt att simma i lava." ELSE PRINT "I vad†?" END IF GOTO handelse titta: ON rum GOSUB 1, 2, 3, 4, 5, 6, 7 IF verb$ = "titta" GOTO kommando IF verb$ <> "titta" GOTO handelse 1 PRINT "Du „r i ett stort rum med grottor †t norr, v„ster och ”ster." PRINT "Det „r ett h†l i taket d„r du trillade ner, men du kan inte ta dig ut den v„gen." RETURN 2 RETURN 3 PRINT "Du st†r p† en smal bro ”ver en lavaflod." PRINT "Bron g†r norrut och s”derut till str„nderna." RETURN 4 PRINT "Du st†r p† s”dra stranden av en lavaflod. Du kan inte se den motsatta stranden h„rifr†n." PRINT "Det „r otroligt hett h„r." PRINT "Det finns en grotta i ”stra v„ggen." IF io(2) = 0 THEN PRINT "Det verkar som om du inte kan komma ”ver floden." IF io(2) = 1 THEN PRINT "Det g†r en bro norrut ”ver floden." RETURN 5 PRINT "Du „r i ett stort rum med ett stort h†l i s”dra v„ggen." PRINT "En lavaflod kommer in i rummet v„sterifr†n och delar sig i tv† †ar." IF io(1) = 0 THEN PRINT "Den ena †n rinner mot sydv„st och st”rtar ner†t som ett vattenfall." PRINT "Det st†r en stor sten h„r. Den verkar sitta l”st." END IF IF io(1) = 1 THEN PRINT "Det ligger en stor sten i den ena †n och t„pper till den." RETURN 6 PRINT "Du st†r i ett litet rum fullt med skr„p och en grotta s”derut." PRINT "Det enda som skulle kunna funka „r spaken som sitter p† v„ggen." IF io(2) = 0 THEN PRINT "Spaken pekar upp†t." IF io(2) = 1 THEN PRINT "Spaken pekar ned†t." RETURN 7 IF io(1) = 0 THEN PRINT "Du st†r i ett rum med en grotta v„sterut och ett lavafall som faller utmed norra v„ggen och rinner ut i ett litet h†l." PRINT "Det verkar vara n†got bakom fallet." END IF IF io(1) = 1 THEN PRINT "Du st†r i ett rum med en grotta †t v„ster och en port norrut." RETURN hjalp: PRINT "Ditt uppdrag „r att ta dig ut ur grottan." PRINT "Du skriver in kommandona enligt principen VERB SUBSTANTIV-eller bara VERB." PRINT "Exempel:dra spaken, titta" PRINT "De verb du kan anv„nda „r:putta,dra,titta,hj„lp,om,sluta och n†gra till." PRINT "Du f”rflyttar dig genom att skriva ett v„derstrecks begynnelsebokstav (nord,syd,v„st och ost blir nsvo.)" GOTO kommando info: PRINT "Detta spel „r programmerat av Anders H„llzon med Microsoft QuickBasic" PRINT "Det „r"; : COLOR 26: PRINT " freeware!"; : COLOR 7: PRINT " Men det vore bra med en kommentar." PRINT "Skicka den i s† fall till hellzon@hotmail.com" PRINT "Tryck p† en knapp f”r att forts„tta.": SLEEP GOTO kommando skrik: PRINT "HHHHHHHHHHHHHHHHHHHHHJJJJJJJJJJJJJJJJŽŽŽŽŽŽŽŽŽŽŽŽŽŽLLLLLLLLLLLLLLLLPPPPPPPPPP!!!" PRINT "Det var nog ingen som h”rde dig." GOTO handelse spara: OPEN "cave.sav" FOR OUTPUT AS 1 PRINT #1, rum, io(1), io(2) PRINT "Sparat!" CLOSE 1 GOTO kommando ladda: OPEN "cave.sav" FOR INPUT AS 1 INPUT #1, rum, io(1), io(2) PRINT "Laddat!" CLOSE 1 verb$ = "titta" GOTO titta nytt: INPUT "Vill du starta om spelet? (j/n)>", a$ IF LCASE$(a$) = "j" GOTO init IF LCASE$(a$) = "n" GOTO kommando GOTO nytt sluta: INPUT "Vill du avsluta det h„r roliga spelet? (j/n)", a$ IF LCASE$(a$) = "j" GOTO slut IF LCASE$(a$) = "n" GOTO kommando GOTO sluta datasatser: DATA n,s,v,o,knuffa,putta,dra,simma,titta,hj„lp,om,sluta,skrik,nytt,spara,ladda DATA 5,0,4,7,0,0,0,0 DATA 2,4,0,0,3,0,0,1 DATA 0,1,0,0,0,7,0,0 DATA 6,0,1,0 slut: ON ERROR GOTO 0: CLOSE : CLS : TROFF: CLEAR : END