Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB ongelma

Sivun loppuun

tanttu [15.08.2003 23:06:48]

#

Miten voin kokeilla tekemääni tekstiseikkailua QB:llä

odys [15.08.2003 23:09:38]

#

Ööh mistä voit tietää toimiiko se jos et ole testannut sitä vielä? Jos olet QB:ssä paina F5.

tanttu [16.08.2003 16:35:04]

#

kiitti mut nyt on toinen ongelma miten voin jatkaa sitä niinku sille blaablaa paina 1 mene kotiin paina 2 hyppää järveen. painan yks ja sitte se jatkuis vaik olet kotona mitä teet? paina 1 lue kirjaa paina 2 ammu ittes. Sitte painan kaks ammuit itsesi ja niin päättyi james bondin elämä.

kaviaari [17.08.2003 16:34:48]

#

cls
alku:
print "Noniin nyt mitäs tehdään"
print "1. Mene kotiin"
print "2. Hyppää järveen"
input a
if a=1 then goto koti
if a=2 then goto kuolo
print "Valitse joko 1 tai 2"
goto alku

koti:
print "Hihhei nyt ollaan kotona jännää eikö?"
print "1. Luetaan kirjaa jee!"
print "2. Ammutaan itsemme ?!"
input a
if a=1 then goto kirja
if a=2 then goto kuolo
print "Vaalitseee ykkönen tai kakkonen!"
goto koti

kirja:
print "+----------+"
print "|##########|"
print "|Punahilkka|"
print "|##########|"
print "|##########|"
print "|##########|"
print "|##########|"
print "+----------+"
print
print "Joo kiva eikös?!"
do :loop until inkey$<>""
goto koti

kuolo:
print "ÄÄK!!! Kuolit!!!"
end

tejeez [17.08.2003 21:27:56]

#

Hieno peli ;)

kurz [22.08.2003 21:58:47]

#

Tekisin näin, jos olisi isompi kuin tuommoinen tekstiseikkailu kyseessä:

CLS
DIM v AS STRING, a AS INTEGER
v = "alku"

DO
   IF v = "alku" THEN
    PRINT " 1.Mee kotiin kirjaa lukeen"
    PRINT " 2.Hyppää järveen"
    INPUT a
    IF a = 1 THEN v = "koti"
    IF a = 2 THEN v = "järvi"
   END IF

   IF v = "koti" THEN
    PRINT "luet punahilkkoo"
    END
   END IF

   IF v = "järvi" THEN
    PRINT "Hukuit järveen"
    END
   END IF
LOOP

Tässä voi lisäillä tapahtumia niin paljon kuin haluaa, ja minun mielestäni on paljon selkeämpi. Eikä tarvitse erikseen tarkistaa onko pelaajan numero oikeaa kokoluokkaa vaan jos ei ole, niin kysymys toistetaan. Näin minäkin olen tehnyt vitosluokalla 700-rivisen tekstiseikkailupelin:)

Antti Laaksonen [22.08.2003 23:01:08]

#

Ja jos tekstiseikkailu on todella laaja, kannattaa tapahtumat tallentaa erilliseen tekstitiedostoon sopivassa muodossa, jolloin QB:tä osaamatonkin voi niitä kirjoittaa.

polestar [22.08.2003 23:50:48]

#

Hallitsen kyllä tekstiseikkailupelit, mutta useissa oppaissa sanotaan että GOTO:n käyttö pitäisi olla mahdollisimman vähäistä. Antti QBasicin guruna voi varmaan selventää?

Janezki [23.08.2003 07:55:49]

#

GOTO tekee koodista hirmuisen sotkuisen ja turhan epäkäytännöllisen, koska GOTOsta ei voi palata takaisin kuten aliohjelmista. Kannattaa käyttää GOSUB -käskyä tai aliohjelmia. Noh selittäkää joku tuo tarkemmin.

kaviaari [23.08.2003 08:29:39]

#

Mutta onko järkeä laittaa noin pieneen peliin subbeja?

Janezki [23.08.2003 10:30:49]

#

No ei oikeastaan, mutta mainitsin noin globaalisti, jos isompaa peliä alkaa tekemään.

kurz [23.08.2003 18:18:30]

#

Minulla on ainakin SUBeissa yksi iso mutta, nimittäin se että muuttujat häviävät subiin mentäessä. Tähänkin on varmasti joku hyvin yksinkertainen ratkaisu, jos joku tietää, voisi kertoo minullekkin.

Janezki [24.08.2003 14:10:21]

#

Muuttujat täytyy määrittää SHARED komennolla esim.
DIM SHARED muuttuja
tai
COMMON SHARED muuttuja

polestar [24.08.2003 18:43:34]

#

Ahaa..! Tuosta tulee varmasti olemaan hyötyä, siis tuosta DIM SHARED pätkästä... olen tehnyt about 450 rivin pituisen manageripelin ja käytän siinä aliohjelmia.

kurz [25.08.2003 10:20:25]

#

Niin minullekkin, aikasemmin on pitänyt tehdä GOTO tai GOSUB purkkaviritelmillä, tai txtseikkailutapauksessa parhaaksi on osoittautunut tuo yllä tekemäni esimerkki.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta