Olen tekemässä semmoista projektia (peliä), mutta eteeni iski ongelma (taas). Kun pelissä kuittaa vaikkapa vaihtoehdon "2", ohjelman pitäisi vähentää kohdasta nalka...
nalka = 10
...yhden numeron. Muttakun ohjelmani muuttaa nalka-muuttujan nollaksi eikä vähennä yhtä lukua, niinkuin pitäisi. Mikä tässä koodissa jälleen mättää:
IF valinta = "2" THEN nalka = nalka - 1 AND uni = uni - 1: GOSUB ohjelmointi
Ettette kysele liikaa: inputit ja kaikki muukin tarvittava on.
Pitäisikö sen olla näin? (AND pois välistä)
IF valinta = "2" THEN nalka = nalka - 1: uni = uni - 1: GOSUB ohjelmointi
Editios: tuli yhtäkkiä mieleeni, että nollaatko muuttujan "valinta" aina ennen kyselyä? Jos tuo on tarkistus on silmukassa eikä sitä nollata välillä, niin sehän tippuu melko nopeasti...
Olen ilmeseesti saanut väärä opastusta jostain sivulta. Toimii se tuolla antamallasi koodilla.
AND on looginen operaattori.
Totuustaulu: X = A and B A B X 0 | 0 | 0 0 | 1 | 0 1 | 0 | 0 1 | 1 | 1
:D
Mod: selvensin vähän totuustauluas :)
Tosiaan, useammat komennot IF:n toteutuessa erotellaan kaksoispisteellä, tai sitten jaetaan kokonaan omille riveilleen ja lopetetaan END IF:llä. AND on operaattori, joka tuossa tapauksessa käsittelee lausekkeita "nalka - 1" ja "uni = uni - 1". Jälkimmäisessä lausekkesessa = toimii vertailuoperaattorina eikä sijoitusoperaattorina.
*heh heh* naurattaa hieman ajatella tuota AND
-viritelmää.
Muuttuja uni
ei voi olla uni - 1
. Joten uni = uni - 1
antaa arvoksi 0 eli FALSE
. Ja tietäneehän jokainen (totuustaulu on), mitä tulee operaatiosta x and 0
. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.