Selailin läpi CD - levyjäni ja löysin vanhan Qbasic tekstiseikkailun. Ryhdyin sitä heti uusimaan. Kuitenkin jämähdin samoihin ongelmiin kuin viimeksi:
1.) Kun painaa F11, tulee esille mitä tavaroita sinulla on mukana. tavarat on määritelty alussa ihan:
miekka = 0
kypara = 0
...
Mutta tässä ongelma: Kun uusi esine saadaan, niin miten tuo luku ( 0 ) nyt sitten saatin ykköseksi ( 1 ) että ohjelma tunnistaa että se on mukana ? En ole ihan kaikkea kokaillut, mutta jelpatkaa.
2.) Ongelma on aika vaikea, tiedän kyllä.
Tarkoitus olisi saada nyt tuon "esineidennäkö" tilanteen jälkeen jatkaa siitä mihin jäätiin. Kelpaako aliohjelmasta RETURN käsky ?
Kannattais tehdä taulukolla eli:
TYPE esine nimi AS STRING mukana AS INTEGER END TYPE DIM SHARED esineet(10) AS esine esineet(0).nimi="miekka" esineet(0).mukana=0 miekka=0 esinemaara=0 rem koodia... IF komento = "ota miekka" THEN esineet(miekka).mukana=1 esinemaara=esinemaara+1 PRINT "Sait miekan!" END IF rem listakoodit: PRINT "Kannat:" FOR j=0 TO esinemaara IF esineet(j).mukana=1 THEN PRINT esineet(j).nimi NEXT
Huom. bugeja voi olla =/
lainaus:
Tarkoitus olisi saada nyt tuon "esineidennäkö" tilanteen jälkeen jatkaa siitä mihin jäätiin. Kelpaako aliohjelmasta RETURN käsky ?
Kelpaahan se, jos teet aliohjelmat GOSUB-komennon avulla:
PRINT "Saavut majatalon ovelle." GOSUB Esineet PRINT "Isäntä ottaa sinut ystävällisesti vastaan." END Esineet: PRINT "Sinulla on miekka, lamppu ja pullo." RETURN
Itse suosittelen kuitenkin modernimpaa tapaa:
SUB Esineet PRINT "Sinulla on miekka, lamppu ja pullo." END SUB PRINT "Saavut majatalon ovelle." Esineet PRINT "Isäntä ottaa sinut ystävällisesti vastaan."
Ajattelinkin että selitän sen väärin. Kaikenlaista on väärin.
Elikkä tarkoitan ennemmän Kaviaarin tapaa. Pitäisi olla pätkä joka ottaisi selvä mitä esineitä on mukana.
Korjailin kaikenlaista ja kuten sanoitkin Kaviaari, sinun pätkässäsi oli jokunen virhe.
Mielestäni sen pitäisi toimia, mutta kun tuo selville otto ei saa kontaktia tuonne "ylös", niin ei näe muuttuuko mikään. Harmi
Aihe on jo aika vanha, joten et voi enää vastata siihen.