Сетки

Сетка - просто двухмерный массив. Сетка имеет ширину и высоту целого числа. Структура позволяет Вам устанавливать и получать значения ячеек в сетке, задавая для неё индекс (который начинается с 0 и c обоих направлений x и y). Но Вы можете также установить значения в областях, добавлять величины, и получая значения sum, max, min и mean в области. Структура полезна, например, для представления игровой области. Даже притом, что все функциональные возможности могут также быть достигнуты при использовании двухмерных массивов, действия областей частично быстрее. Существуют следующие функции:

ds_grid_create(w,h) Создаёт новую сетку с обозначенной шириной и высотой. Функция возвращает целое число как id, который должен использоваться во всех других функциях, чтобы получить доступ специфической сетки.
ds_grid_destroy(id) Уничтожает сетку с заданным id, освобождая используемую память. Не забудте вызвать эту функцию, когда у Вас готово со структурой.
ds_grid_copy(id,source) Копирует сетку source в сетку с заданным id.
ds_grid_resize(id,w,h) Изменяет размеры сетки на новую ширину и высоту. Существующие ячейки содержат их первоначальные значения.
ds_grid_width(id) Возвращает ширину сетки с обозначенным id.
ds_grid_height(id) Возвращает высоту сетки с обозначенным id.
ds_grid_clear(id,val) Очищает сетку с заданным id к обозначенному значению (может иметь множество строк).
ds_grid_set(id,x,y,val) Устанавливает обозначенную ячейку в сетке с заданным id к обозначенному значению (может иметь множество строк).
ds_grid_add(id,x,y,val) Добавляет значение к обозначенной ячейке в сетке с заданным id. Для её строк соответствуют связи.
ds_grid_multiply(id,x,y,val) Умножает величину к указанной ячейке в сетке с заданным id. Правильно только для чисел.
ds_grid_set_region(id,x1,y1,x2,y2,val) Устанавливает все ячейки в области в сетке с заданным id к обозначенному значению (может иметь множество строк).
ds_grid_add_region(id,x1,y1,x2,y2,val) Добавляет значение ячейке в области в сетке с заданным id. Для её строк соответствуют связи.
ds_grid_multiply_region(id,x1,y1,x2,y2,val) Умножает значение ячейкам в области в сетке с заданным id. Является правильным только для чисел.
ds_grid_set_disk(id,xm,ym,r,val) Устанавливает все ячейки в диске с центром (xm, ym) и радиусом r.
ds_grid_add_disk(id,xm,ym,r,val) Добавляет значение всем ячейкам в диске с центром (xm, ym) и радиусом r.
ds_grid_multiply_disk(id,xm,ym,r,val) Умножает значение всех ячейек в диске с центром (xm, ym) и радиусом r.
ds_grid_get(id,x,y) Возвращает значение обозначенной ячейки в сетке с заданным id.
ds_grid_get_sum(id,x1,y1,x2,y2) Возвращает сумму значений ячеек в области в сетке с заданным id. Работает правильно, когда ячейки содержат числа.
ds_grid_get_max(id,x1,y1,x2,y2) Возвращает максимальные значения ячеек в области в сетке с заданным id. Работает правильно только тогда, когда ячейки содержат числа.
ds_grid_get_min(id,x1,y1,x2,y2) Возвращает минимальные значения ячеек в области в сетке с заданным id. Работает правильно только тогда, когда ячейки содержат числа.
ds_grid_get_mean(id,x1,y1,x2,y2) Возвращает средние значения ячеек в области в сетке с заданным id. Работает правильно только тогда, когда ячейки содержат числа.
ds_grid_get_disk_sum(id,xm,ym,r) Возвращает сумму значений ячеек диска.
ds_grid_get_disk_min(id,xm,ym,r) Возвращает минимальные значения ячеек диска.
ds_grid_get_disk_max(id,xm,ym,r) Возвращает максимальные значения ячеек диска.
ds_grid_get_disk_mean(id,xm,ym,r) Возвращает средние значения ячеек диска.
ds_grid_value_exists(id,x1,y1,x2,y2,val) Возвращает при появлении значения в области.
ds_grid_value_x(id,x1,y1,x2,y2,val) Возвращает x-координату ячейки, в которой значение появляется в области.
ds_grid_value_y(id,x1,y1,x2,y2,val) Возвращает y-координату ячейки, в которой значение появляется в области.
ds_grid_value_disk_exists(id,xm,ym,r,val) Возвращает при появлении значения на диске.
ds_grid_value_disk_x(id,xm,ym,r,val) Возвращает x-координату ячейки, в которой значение появляется на диске.
ds_grid_value_disk_y(id,xm,ym,r,val) Возвращает y-координату ячейки, в которой значение появляется на диске.
ds_grid_shuffle(id) Перетасовываются в случайном порядке значения сетки.
ds_grid_write(id) Превращает дата-структуру в строку и возвращает эту строку. Строка может использоваться, например, чтобы сохранить ее в файл. Это обеспечивает простой механизм сохранения дата-структур.
ds_grid_read(id,str) Читает дата-структуру из данной строки (которая создана предыдущим запросом).