Tässä taas n. 13kk n jälkeen aloitin QB:n ja törmäsin heti pariin tosihelppoon ongelmaan. Ensiksi kysyisin, että miten QB:ssä saa ohjattua jotain merkkiä(vaikka O) esim. nuolinäppäimillä, vai voiko mitenkään?
Sitten vielä: Luotiinko QB taulukot näin:
DIM taulukko(10, 10) AS INTEGER ?
Pystyykö tuolla tyylillä asettelemaan vaikka kirjaimen F näytön kohtaan 5,5?
Taulukko luodaan:
Dim taulukko(1 to 100) as integer
Ja talukon alkioihin voi dataa lisätä taulukon muodon mukaan näin:
taulukko[alkionnro] = 1337
ja tekstiä saa tiettyyn paikkaan käyttämällä locatea:
LOCATE x,y: Print "F"
Ensimmäistä kysymystä en rupea selittämään. Enempi QB:n perehtyneet saavat sen paremmin selitettyä. Mutta yksi keino olisi ainakin tyhjentää ruutu napin painalluksesta ja muuttaa x ja y arvoja ;).
Jyri kirjoitti:
Sitten vielä: Luotiinko QB taulukot näin:
DIM taulukko(10, 10) AS INTEGER ?
Juu.
Jyri kirjoitti:
Pystyykö tuolla tyylillä asettelemaan vaikka kirjaimen F näytön kohtaan 5,5?
(Disclaimer: en osaa QB:tä)
LOCATE 5, 5 PRINT "F"
Tässä on esimerkki merkin ohjaamisesta, törmäystarkistukset ja muut hienoudet saat tehdä itse:
'aloituskoordinaatit
x% = 40: ux% = x%
y% = 10: uy% = y%
'piirretään pelihahmo
LOCATE y%, x%: PRINT CHR$(2)
DO
'luetaan painettu näppäin
n$ = INKEY$
'liikutaan näppäimen mukaan
SELECT CASE n$
CASE CHR$(0) + "P" 'alas
ux% = x%: uy% = y% + 1
CASE CHR$(0) + "H" 'ylös
ux% = x%: uy% = y% - 1
CASE CHR$(0) + "K" 'oikea
ux% = x% - 1: uy% = y%
CASE CHR$(0) + "M" 'vasen
ux% = x% + 1: uy% = y%
END SELECT
'piirretään pelihahmo tarpeen tullen uudestaan
IF x% <> ux% OR y% <> uy% THEN
LOCATE y%, x%: PRINT " "
LOCATE uy%, ux%: PRINT CHR$(2)
x% = ux%: y% = uy%
END IF
LOOP UNTIL n$ = CHR$(27)Reiskan esimerkkiin pääsi pujahtamaan virhe. QBasicissa taulukon kohtiin viitataan tavallisilla suluilla, ei siis hakasuluilla. Korjattuna koodi on:
taulukko(alkio) = 1337
Kiitti! Nyt lähti luistamaan! Ja taas koodaamaan -->
Aihe on jo aika vanha, joten et voi enää vastata siihen.