Tein yksinkertaisen roolipeli tappelu esimerkin QB:llä. Mutta se valittaa useita virheitä, kuten kohdassa "IF EXP = 20" se valittaa expected ( - juttua. Miten saisin korjattua tästä täydellisen.
PS: Älkää välittäkö tuosta:
JUDOKANSAI:
CLS
PRINT ""
PRINT "JUDOMIES ISKEE HUTI!"
PRINT ""
SLEEP 2
GOTO TAISTELU2
Kohdasta. En osaa nimittäin tehdä "Random" tapahtumia.
Jos selitin epämääräisesti pistä palautetta. Kokeilen selventää :P.
--------------------------------
LEVEL = 1
LEVELLISA = 1
EXPA = 10
EXPLEVEL = 1
ALKU:
CLS
PRINT " MINNE MENET? "
PRINT ""
PRINT "1. HARJOITUS AREENALLE"
PRINT "3. STATSIT"
PRINT ""
INPUT1:
INPUT V$
IF V$ = "1" THEN GOTO HA
IF V$ = "3" THEN GOTO STATS
GOTO INPUT1
HA:
CLS
PRINT "KETA VASTAAN HALUAT TAPELLA?"
PRINT ""
PRINT "1. JUDOKANSANIA"
PRINT ""
PRINT ""
INPUT2:
INPUT V$
IF V$ = "1" THEN GOTO JUDOKANSAI
GOTO INPUT2
JUDOKANSAI:
CLS
PRINT ""
PRINT "JUDOMIES ISKEE HUTI!"
PRINT ""
SLEEP 2
GOTO TAISTELU2
TAISTELU2:
CLS
PRINT "MITA TEET?"
PRINT ""
PRINT "1. LYO"
PRINT ""
INPUT3:
INPUT V$
IF V$ = "1" THEN GOTO VOITTO
GOTO INPUT3
VOITTO:
CLS
EXPA = EXPA + EXPLISA
IF EXP = 20
THEN LEVEL = LEVEL + LEVELLISA
PRINT "LOIT VASTUSTAJALTASI NENAN RUTTUUN"
PRINT "SAIT EXPAA 10"
PRINT ""
PRINT ""
SLEEP 3
GOTO ALKU
STATS:
CLS
PRINT "LEVELISI ON:"; LEVEL
PRINT ""
PRINT "EXPAA SULLA ON:"; EXPA
PRINT ""
PRINT ""
SLEEP 5
GOTO ALKU
No mutta, eihän tuolla ole missään aiemmin EXP-muuttujaa, vaan EXPA. Myöskään EXPLISA-muuttujaa ei näy, joten olisiko sekin syytä määritellä alussa?
Lisäksi pieni vihje: GOTO on lopulta aika kömpelö; kannattaa opetella käyttämään SUBeja.
Ja lupuksi, viitsisitkö käyttää kooditagia, kuten lupasit aiemmassa QB-aiheessasi tehdä:
[koodi QB] Tähän koodia [/koodi]
Harjoitusareena on muuten yhdyssana.
Olisin käyttänyt, mutta en osannut :D.
Kiitos tiedosta, käytän sitä ensi kerralla.
Mutta voisiko joku kertoa muuttujista. Olen aloittelija.
-OHO! Niinpäs onkin! Unohdin kokonaan EXP muuttujan!
Eijeijei
Apua QB:n perusteisiin löytyy kolmesta QB-oppaasta Opassivulta kohdasta Aloittelijan QBasic-opas.
Joo, kiitos. Sain selvitettyä virheen tuossa koodissa.
En nyt tarvitse enempää tietoa, KIITOS!
lainaus:
Olisin käyttänyt, mutta en osannut :D.
No onhan ne keskustelun ohjeissa selitetty. Ja tuo homma ei toiminut, koska THEN-jatko oli toisella rivillä, eikä se saa olla.
Outo virheilmoitus johtui siitä, että EXP on QBasicin oma sisäinen funktio. Sen takia sitä ei voi käyttää muuttujan nimenä.
Joo, niinpäs muuten onkin, mutta tuo ei olisi siltikään toiminut, vaikka muuttujanimi olisi ollut jokin muu. Jokaisen IF-alkavan rivin perässä on oltava THEN, mutta voit toki tehdä näin:
IF EXPA = 20 THEN LEVEL = LEVEL + LEVELLISA END IF 'tämä on pakkollinen, jos käytetään useampaa kuin yhtä riviä, jotta tiedetään, mihin "iffaus" loppuu
Edit: Lue tosiaan ne oppaat, niistä on paljon apua.
Aihe on jo aika vanha, joten et voi enää vastata siihen.