Ruudukot

Ruudukko on yksinkertaisesti kaksiulotteinen taulukko. Sillä on korkeus ja leveys, jotka ovat kokonaislukuja. Tämä rakenne mahdollistaa arvojen asettamisen soluihin ja lukemisen soluista antamalla näille indeksit (jotka alkavat nollasta sekä x- että y-suunnassa. Voit kuitenkin myös asettaa arvoja alueille, lisätä arvoja alkuperäisiin arvoihin ja saada alueiden summan, maksimiarvon, minimiarvon ja keskiarvon. Vaikka tämän kaiken voikin toteuttaa kaksiulotteisilla taulukoilla, nämä alueiden käsittelyoperaatiot ovat paljon nopeampia. Seuraavat funktiot käsittelevät ruudukoita:

ds_grid_create(w,h) Luo uuden ruudukon, jonka mitat ovat w ja h. Funktio palauttaa kokonaisluvun, joka on ruudukon id ja jota on käytettävä kaikissa muissa funktioissa juuri tämän tietyn ruudukon käsittelemiseksi.
ds_grid_destroy(id) Tuhoaa ruudukon, jolla on annettu id, ja vapauttaa sen varaaman muistin. Älä unohda kutsua tätä, kun et enää tarvitse ruudukkoa.
ds_grid_copy(id,source) Kopioi ruudukon source ruudukkoon, jolla on annettu id.
ds_grid_resize(id,w,h) Muuttaa ruudukon koon uuden leveyden ja korkeuden mukaisiksi. Olemassaolevien solujen arvot säilyvät.
ds_grid_width(id) Palauttaa ruudukon, jolla on annettu id, leveyden.
ds_grid_height(id) Palauttaa ruudukon, jolla on annettu id, korkeuden.
ds_grid_clear(id,val) Tyhjentää ruudukon, jolla on annettu id, ja asettaa kaikkien solujen arvoksi annetun arvon (voi olla joko luku tai merkkijono).
ds_grid_set(id,x,y,val) Asettaa määritettyyn soluun ruudukossa, jolla on annettu id, ilmoitetun arvon (voi olla joko luku tai merkkijono).
ds_grid_add(id,x,y,val) Lisää määritetyssä solussa olevaan arvoon ilmoitetun arvon ruudukossa, jolla on annettu id. Merkkijonoilla tämä tarkoittaa niiden yhdistämistä.
ds_grid_multiply(id,x,y,val) Kertoo määritetyssä solussa olevan arvon ilmoitetulla arvolla ruudukossa, jolla on annettu id. Tämä funktio toimii vain lukujen kanssa.
ds_grid_set_region(id,x1,y1,x2,y2,val) Asettaaa kaikkien määrätyllä alueella olevien solujen arvoksi annetun arvon (voi olla joko luku tai merkkijono) ruudukossa, jolla on annettu id.
ds_grid_add_region(id,x1,y1,x2,y2,val) Lisää kaikkiin määrätyllä alueella olevissa soluissa oleviin arvoihin annetun arvon ruudukossa, jolla on annettu id. Merkkijonoilla tämä tarkoittaa niiden yhdistämistä.
ds_grid_multiply_region(id,x1,y1,x2,y2,val) Kertoo kaikkien määrätyllä olevien solujen arvot ilmoitetulla arvolla ruudukossa, jolla on annettu id. Tämä funktio toimii vain lukujen kanssa.
ds_grid_set_disk(id,xm,ym,r,val) Asettaa kaikkien solujen, jotka sijaitsevat ympyrällä, jonka keskipiste on sijainnissa (xm,ym) ja säde r, arvoksi annetun arvon.
ds_grid_add_disk(id,xm,ym,r,val) Lisää kaikkien solujen, jotka sijaitsevat ympyrällä, jonka keskipiste on sijainnissa (xm,ym) ja säde r, arvoon annetun arvon.
ds_grid_multiply_disk(id,xm,ym,r,val) Kertoo kaikkien solujen, jotka sijaitsevat ympyrällä, jonka keskipiste on sijainnissa (xm,ym) ja säde r, arvot annetun arvolla.
ds_grid_set_grid_region(id,source,x1,y1,x2,y2,xpos,ypos) Kopioi määritellyn alueen solujen arvot ruudukosta source alueelle ruudukkoon id. xpos ja ypos määräävät, mihin kohtaan ruudukkoa alue kopioidaan. (Tätä toimintoa voidaan myös käyttää arvojen kopioimiseen saman ruudukon sisällä eri kohtaan.)
ds_grid_add_grid_region(id,source,x1,y1,x2,y2,xpos,ypos) Lisää määritellyn alueen solujen arvot ruudukosta source ruudukon id alueen solujen arvoihin. xpos ja ypos ilmoittavat, mihin kohtaan arvot lisätään ruudukossa. (id ja source voivat olla sama ruudukko.)
ds_grid_multiply_grid_region(id,source,x1,y1,x2,y2,xpos,ypos) Kertoo ruudukossa id olevan alueen solujen arvot ruudukon source määrätyn solualueen arvoilla. xpos ja ypos ilmoittavat, mihin kohtaan alueen kertoimet kerrotaan. (id ja source voivat olla sama ruudukko.) Tämä funktio toimii vain lukujen kanssa.
ds_grid_get(id,x,y) Palauttaa arvon, joka on määritetyssä solussa ruudukossa, jolla on annettu id.
ds_grid_get_sum(id,x1,y1,x2,y2) Palauttaa määritetyn alueen solujen summan ruudukossa, jolla on annettu id. Tämä funktio toimii vain, kun kaikki alueen solut sisältävät lukuarvoja.
ds_grid_get_max(id,x1,y1,x2,y2) Palauttaa määritetyn alueen soluista suurimman löytyneen arvon ruudukossa, jolla on annettu id. Tämä funktio toimii vain, kun solut sisältävät lukuarvoja.
ds_grid_get_min(id,x1,y1,x2,y2) Palauttaa määritetyn alueen soluista pienimmän löytyneen arvon ruudukossa, jolla on annettu id. Tämä funktio toimii vain, kun solut sisältävät lukuarvoja.
ds_grid_get_mean(id,x1,y1,x2,y2) Palauttaa määritetyn alueen solujen arvojen keskiarvon ruudukossa, jolla on annettu id. Tämä funktio toimii vain, kun solut sisältävät lukuarvoja.
ds_grid_get_disk_sum(id,xm,ym,r) Palauttaa määritetyn ympyräalueen solujen summan.
ds_grid_get_disk_min(id,xm,ym,r) Palauttaa pienimmän määritetyn ympyräalueen solun arvon.
ds_grid_get_disk_max(id,xm,ym,r) Palauttaa suurimman määritetyn ympyräalueen solun arvon.
ds_grid_get_disk_mean(id,xm,ym,r) Palauttaa ympyräalueen solujen arvojen keskiarvon.
ds_grid_value_exists(id,x1,y1,x2,y2,val) Ilmoittaa, esiintyykö arvo val jossain määritetyn alueen solussa.
ds_grid_value_x(id,x1,y1,x2,y2,val) Ilmoittaa solun, jossa arvo val esiintyy määritetyllä alueella, x-koordinaatin.
ds_grid_value_y(id,x1,y1,x2,y2,val) Ilmoittaa solun, jossa arvo val esiintyy määritetyllä alueella, y-koordinaatin.
ds_grid_value_disk_exists(id,xm,ym,r,val) Ilmoittaa, esiintyykö arvo val jossain määritetyn ympyräalueen solussa.
ds_grid_value_disk_x(id,xm,ym,r,val) Ilmoittaa solun, jossa arvo val esiintyy määritetyllä ympyräalueella, x-koordinaatin.
ds_grid_value_disk_y(id,xm,ym,r,val) Ilmoittaa solun, jossa arvo val esiintyy määritetyllä ympyräalueella, y-koordinaatin.
ds_grid_shuffle(id) Sekoittaa ruudukon arvot, jolloin ne päätyvät sattumanvaraiseen järjestykseen.
ds_grid_write(id) Muuntaa ruudukkotietorakenteen, jolla on annettu id, merkkijonoksi ja palauttaa sen. Tätä merkkijonoa voidaan sitten käyttää esim. sen tallentamiseen. Tällä tavoin tietorakenteiden tallentaminen helpottuu.
ds_grid_read(id,str) Lukee tietorakenteen annetusta merkkijonosta (joka on luotu edellisellä funktiolla).