Rejillas

Una rejilla es simplemente un vector (o arreglo) bidimensional. Una rejilla tiene un entero con su altura y anchura. Esta estructura te permite acceder a los valores indicando el valor de la celda deseada (el primer valor en las direcciones x e y es 0). Pero también puedes dar valores por regiones, añadirlos y encontrar los valores máximo, mínimo o medio de una región. Esta estructura es útil para representar por ejemplo un campo de juego. Aunque todo lo que hace esta estructura se puede conseguir usando vectores, las operaciones por regiones son mucho más rápidas.

ds_grid_create(w,h) Crea una rejilla con la anchura especificada en w y la altura especificada en h. La función devuelve la id de la rejilla que debe usarse en las demás funciones.
ds_grid_destroy(id) Destruye la rejilla, liberando la memoria usada. No olvides usar esta función cuando ya no necesites la rejilla.
ds_grid_resize(id,w,h) Aumenta el tamaño de la rejilla a la nueva anchura y altura especificadas. Las celdas ya existentes mantienen su valor.
ds_grid_width(id) Devuelve la anchura de la rejilla.
ds_grid_height(id) Devuelve la altura de la rejilla.
ds_grid_clear(id,val) Hace que todos las celdas de la rejilla tomen el valor val (puede ser un número o una cadena de texto).
ds_grid_set(id,x,y,val)Asigna a la celda x,y el valor val.
ds_grid_add(id,x,y,val) Suma el valor a la celda especificada. Para cadenas de texto, la cadena se concatena a la que ya existe en la celda.
ds_grid_multiply(id,x,y,val) Multiplica la celda por el valor. Sólo se puede usar con números.
ds_grid_set_region(id,x1,y1,x2,y2,val) Todas las celdas de la región especificada toman el valor especificado.
ds_grid_add_region(id,x1,y1,x2,y2,val)Suma el valor a la región especificada. Para cadenas de texto, concatena la cadena de texto a la existente en cada celda.
ds_grid_multiply_region(id,x1,y1,x2,y2,val) Multiplica el valor por todas las celdas de la región (sólo para valores numéricos).
ds_grid_set_disk(id,xm,ym,r,val) Da el valor especificado a toda las celdas dentro del círculo de centro xm,ym y radio r.
ds_grid_add_disk(id,xm,ym,r,val) Suma el valor a la región especificada por el círculo. Para cadenas de texto, concatena la cadena de texto a la existente en cada celda.
ds_grid_multiply_disk(id,xm,ym,r,val) Multiplica el valor por todas las celdas de la región (sólo para valores numéricos).
ds_grid_get(id,x,y) Devuelve el valor de la celda indicada.
ds_grid_get_sum(id,x1,y1,x2,y2) Devuelve la suma de los valores de las celdas de la región especificada. Sólo funciona con valores numéricos.
ds_grid_get_max(id,x1,y1,x2,y2) Devuelve el máximo valor de las celdas de la región especificada. Sólo funciona con valores numéricos.
ds_grid_get_min(id,x1,y1,x2,y2) Devuelve el mínimo valor de las celdas de la región especificada. Sólo funciona con valores numéricos.
ds_grid_get_mean(id,x1,y1,x2,y2) Devuelve el valor medio de las celdas de la región especificada. Sólo funciona con valores numéricos.
ds_grid_get_disk_sum(id,xm,ym,r) Devuelve la suma de los valores de las celdas de la región circular especificada. Sólo funciona con valores numéricos..
ds_grid_get_disk_min(id,xm,ym,r) Devuelve el mínimo valor de las celdas de la región circular especificada. Sólo funciona con valores numéricos.
ds_grid_get_disk_max(id,xm,ym,r) Devuelve el máximo valor de las celdas de la región circular especificada. Sólo funciona con valores numéricos.
ds_grid_get_disk_mean(id,xm,ym,r) Devuelve el valor medio de las celdas de la región circular especificada. Sólo funciona con valores numéricos.
ds_grid_value_exists(id,x1,y1,x2,y2,val) Devuelve true si el valor especificado existe en la región.
ds_grid_value_x(id,x1,y1,x2,y2,val) Devuelve la coordenada x de la celda de la región en la que aparece el valor especificado.
ds_grid_value_y(id,x1,y1,x2,y2,val) Devuelve la coordenada y de la celda de la región en la que aparece el valor especificado.
ds_grid_value_disk_exists(id,xm,ym,r,val) Devuelve true si el valor especificado existe en la región circular.
ds_grid_value_disk_x(id,xm,ym,r,val) Devuelve la coordenada x de la celda de la región circular en la que aparece el valor especificado.
ds_grid_value_disk_y(id,xm,ym,r,val) Devuelve la coordenada y de la celda de la región circular en la que aparece el valor especificado.