Ydin : komennot

DIM


   KUVAUS

Luo taulukon muistiin. Taulukoissa voi olla useita ulottuvuuksia, mutta enintään viisi. Uuden ulottuvuuden määritteleminen voi kasvattaa dramaattisesti taulukon kokoa. Taulukot ovat käteviä, kun halutaan sijoittaa paljon tietoa yhden muuttujanimen taakse. Taulukoita voidaan käydä tehokkaasti läpi For...Next-rakenteella (katso esimerkki). Sen sijaan, että loisit 52*7 eri muuttujaa sijoittamaan vuoden oikeat lottorivit, voit varata taulukon (52,7). Vähentää kummasti kirjoitustyötä :)

Kuvittele, että taulukot ovat laatikoita. Jos taulukkosi on 1-ulotteinen, ja sisältää 6 solua, se sisältää siis 6 laatikkoa. Oletetaan, että määrittelet uuden ulottuvuuden, jossa on 5 solua. Silloin jokaiseen kuuteen laatikkoon ilmestyy 5 pienempää laatikkoa. Ja jos määrittelet taas uuden ulottuvuuden, vaikka 45 solulla, on sinulla kuusi laatikkoa, jokaisessa niistä 5 pienempää laatikkoa, ja jokaisen niiden sisällä vielä 45 pienempää laatikkoa. Sinulla on siis yhteensä 6*5*45=1350 solua taulukossasi.

Huomioi kuitenkin, että kun määrittelet kuinka monta solua yhteen ulottuvuuteen tulee, myös nolla on mukana. Eli jos käsket Dim t(5), varaat oikeasti tilaa kuudelle paikalle: {0,1,2,3,4,5}.

Kaikki taulukot ovat globaaleja, eli ne "näkyvät" myös kaikissa funktioissa. Älä yritä lukea/kirjoittaa sellaisiin paikkoihin taulukossa, joita ei ole olemassa.

Voit esittää myös muuttujia tietyn tyyppisiksi. Tällöin käytetään AS-avainsanaa ja tyyppitunnistetta: Integer, Float, String, Byte tai Short. Lisätietoa kahdesta viimeisestä löydät manuaalin kohdasta "Tietotyypit". Huomaa, että voit määritellä useita muuttujia ja taulukoita samalla DIM-komennolla, kunhan ne on erotettu pilkulla. Esimerkki valaisee asiaa.

   KÄYTTÖ
DIM muuttuja (ulottuvuus1_elementit [,ulottuvuus2_elementit] [,ulottuvuus3_elementit} [,ulottuvuus4_elementit] [,ulottuvuus5_elementit])

  • ulottuvuus1_elementit = Kokonaisluku, joka määrittää ensimmäisen ulottuvuuden solujen määrän.
  • ulottuvuus2_elementit (valinnainen) = Kokonaisluku, joka määrittää toisen ulottuvuuden solujen määrän.
  • ulottuvuus3_elementit (valinnainen) = Kokonaisluku, joka määrittää kolmannen ulottuvuuden solujen määrän.
  • ulottuvuus4_elementit (valinnainen) = Kokonaisluku, joka määrittää neljännen ulottuvuuden solujen määrän.
  • ulottuvuus5_elementit (valinnainen) = Kokonaisluku, joka määrittää viidennen ulottuvuuden solujen määrän.

  • Katso myös: REDIM

       ESIMERKKI
    Dim enemy_x#(100)
    Dim enemy_y#(100)
    Dim enemy_plusx(100) As Float,enemy_plusy(100) As Float

    Dim i As Integer
    Dim angle As Integer

    'First apply a random position for all enemies
    For i=1 To 100
        enemy_x(i)=Rand(390)
        enemy_y(i)=Rand(290)
        angle=Rand(360)
        enemy_plusx(i)=Cos(angle)
        enemy_plusy(i)=Sin(angle)
    Next i

    Color 0,255,0

    'The main loop
    Repeat
        
        'update all enemies
        For i=1 To 100
            'draw
            Box enemy_x(i),enemy_y(i),10,10,OFF
            
            'move
            enemy_x(i)=enemy_x(i)+enemy_plusx(i)
            enemy_y(i)=enemy_y(i)+enemy_plusy(i)
            
            'bounce
            If enemy_x(i)<0 Or enemy_x(i)>390 Then enemy_plusx(i)= -enemy_plusx(i)
            If enemy_y(i)<0 Or enemy_y(i)>290 Then enemy_plusy(i)= -enemy_plusy(i)
        Next i
        
        DrawScreen
        
    Until EscapeKey()

    <<TAKAISIN