какие-то чудеса у тебя творятся. Сделай, как я говорю - ифом, а после ифа сделай гет колор с выводом в лог. Хоть посмотрю на это чудо. Вдруг еще какой-то баг.
Цитата
ИНОГДА файл куда надо записать данные, не перезаписывается, а просто добавляется новые данные.
странно... я вообще мечтал о таком функционале, но его вроде так и не сделали. Перед записью проверь размер массива. Возможно он в себе содержит лишние данные.
В первом цикле ошибка - три ифа открываются, но только два закрываются.
Цитата
if #colorN1 = #color
if #x1 #y1 #color
можно заменить на:
if #x1 #y1 #color and #colorN1 = #color
не очень понятно откуда берется #sz и каким образом она изменяется в ходе работы скрипта. Так же не очень понятно что в себе содержит массив. Теоретически, если сетка статичная, то можно чуть-чуть сэкономить время на вычислении:
Цитата
set #x1 %a[#i 1]
set #y1 %a[#i 2] + 41
забив координаты один раз в массив. Но толку от этого будет не очень много. Если счет не идет на миллисекунды, то смысла заморачиваться нет.
Достаточно интересный прирост производительности может дать проверка внутри одного цикла и правой стороны и верха. Да и как-то логично это в один цикл запихать.
Если нужны совпадения только с обоих сторон, то можно вообще одним ифом ограничиться с несколькими условиями через and.