Luku 10

Taulukko

Taulukon avulla ohjelmassa voi pitää muistissa paljon tietoa.

Seuraava koodi esittelee taulukon käyttöä:

Dim x[3] As Number
x[1] = 5
x[2] = 4
x[3] = 9
Print x[2]

Koodin tulostus on:

4

Koodi luo taulukon x, johon voi tallentaa 3 lukua. Taulukon kohtiin viitataan merkinnällä x[i], missä i on haluttu kohta taulukossa.

Putoavat pallot

Seuraavassa koodissa aina kun käyttäjä painaa hiiren vasenta näppäintä, ruudulle ilmestyy uusi pallo, joka alkaa pudota alaspäin.

Dim x[1000] As Number
Dim y[1000] As Number
Dim c = 0
Do
    If MouseHit(1) Then
        c = c + 1
        x[c] = MouseX()
        y[c] = MouseY()
    End If
    ClearScreen
    For i = 1 To c
        y[i] = y[i] + 1
        FillCircle x[i], y[i], 5
    Next i
    DrawScreen
Loop

Koodi säilyttää taulukoissa x ja y pallojen koordinaatteja. Muuttuja c kertoo, montako palloa ohjelmassa on yhteensä.

Jos käyttäjä painaa hiiren vasenta näppäintä, muuttujan c arvo kasvaa ja taulukkoon vastaavaan kohtaan tallennetaan hiiren koordinaatit.

Silmukan joka kierroksella koodi käy kaikki pallot läpi ja liikuttaa niitä askeleen alaspäin sekä piirtää kunkin ympyrän ruudulle.

Kaksiulotteisuus

Seuraava koodi määrittelee kaksiulotteisen taulukon:

Dim x[20,15] As Number
x[3,8] = 5
Print x[3,8]

Tässä taulukossa on 20 riviä ja 15 saraketta. Taulukkoon mahtuu siis 20 * 15 = 300 lukua.

Ruudukko

Kaksiulotteinen taulukko soveltuu hyvin ruudukon muotoisen pelikentän tallentamiseen. Niin on tehty seuraavassa koodissa:

Dim r[20,15] As Number
For i = 1 To 20
    For j = 1 To 15
        r[i,j] = Rnd(0,1)
    Next j
Next i
Do
    ClearScreen
    For i = 1 To 20
        For j = 1 To 15
            If r[i,j] = 0 Then
                FillColor 0, 0, 0
            Else
                FillColor 200, 200, 200
            End If
            FillRect 20*i, 20*j, 20, 20
        Next j
    Next i
    DrawScreen
Loop

Pelikentän sisältö on taulukossa r. Koodi arpoo ensin pelikentän sisällön: jokaiseen kohtaan tulee joko 0 (musta) tai 1 (valkoinen).

Tämän jälkeen silmukassa koodi piirtää pelikentän taulukon sisällön perustella.

Edellinen