Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Missä sponsorisysteemin vika? (QB)

tuobbi-89 [28.11.2002 21:08:55]

#

Olen tekemässä QBasicillä manageripeliä, jossa on mahdollisuus hankkia itselleen sponsoreita. Pelissä pelataan päivä kerrallaan, ja jokaisena päivänä sponsoriehdokkaat esittävät tarjouksia. Tarjoajat arvotaan loopilla ja satunnaislukuoperaattorilla. Nyt olen kohdannut kuitenkin ongelman. Otetaan ensiksi hiukan sitä ohjelmakoodia. (Alkää naurako noiden sponsoreiden nimiä. ;))

Eli ensin määrittelin satunnaislukumuuttujan ja merkkijonotaulukon, joka sisältää sponsoritarjoajien nimet, siis:

DIM SHARED sat AS DOUBLE
DIM SHARED tarjous(1 TO 3) AS STRING

Ja eräässä aliohjelmassa on sitten tällainen silmukka:

FOR t = 1 TO 3
RANDOMIZE TIMER
' ensin arvotaan tarjoajien nimet :)
sat = INT(RND * 9) + 1
SELECT CASE sat
CASE sat = 1: tarjous(t) = "Pertin joululeipomo"
CASE sat = 2: tarjous(t) = "Kinnusen kinkut Oy"
CASE sat = 3: tarjous(t) = "Samin serviettisoppi"
CASE sat = 4: tarjous(t) = "Stokman"
CASE sat = 5: tarjous(t) = "Meerin piparit Oy"
CASE sat = 6: tarjous(t) = "Saurioinen Oy"
CASE sat = 7: tarjous(t) = "BullaBuoti"
CASE sat = 8: tarjous(t) = "Joulun Tähti Oy"
CASE sat = 9: tarjous(t) = "Artian Liha"
CASE sat = 10: tarjous(t) = "Kotivihannekset Oy"
END SELECT
NEXT

Tuo siis arpoo ne kolme sponsoriehdokasta. Ongelma piilee siinä, että kun yritän tulostaa noiden sponsoriehdokkaiden nimiä taulukosta, niin mitään ei tule näyttöön. Siis näin:

PRINT "Päivän tarjoukset:"
PRINT
PRINT tarjous(1)
PRINT tarjous(2)
PRINT tarjous(3)

Ohjelmaa ajettaessa QB ei herjaa mitään, sponsoriehdokkaiden nimet eivät vain tulostettaesa näy. Mikä neuvoksi? Nyt tietysti olen unohtanut vain jonkun pisteen jostain tai jotain vastaavaa ja kaikki tämän foorumin QB-gurut nauravat minulle, mutta ei se mitään... :D

ghostdog [28.11.2002 23:07:52]

#

Luulisin, että aliohjelmasta et voi käsitellä pääohjelmassa määriteltyjä muuttujia.

Antti Laaksonen [28.11.2002 23:10:58]

#

Vika näyttää olevan siinä, että SELECT CASE -rakenne on hieman väärin toteutettu: 'sat ='-osan kanssa vertailu ei toimi oikein. Muuta siis rivit tyyliin

CASE 1: tarjous(t) = "Pertin joululeipomo"

niin sitten pitäisi toimia.

tuobbi-89 [29.11.2002 14:22:57]

#

lainaus:

Vika näyttää olevan siinä, että SELECT CASE -rakenne on hieman väärin toteutettu: 'sat ='-osan kanssa vertailu ei toimi oikein. Muuta siis rivit tyyliin

CASE 1: tarjous(t) = "Pertin joululeipomo"

niin sitten pitäisi toimia.

Joo, nyt toimii taas! Kiitos Antti!

Vastaus

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

Tietoa sivustosta