Здравствуйте.
Задача очень тривиальная - перетаскивать итемы по одному из кучи в заданные места. Как аккумулятор был выбран массив, по причине возможного исползования значения счетчика (переменной) в качестве индексов элементов.
Проблема в следующем:
Допустим, я храню координаты в двумерном массиве
Код
// From
set %SourceCoords [1] [1] 111
set %SourceCoords [1] [2] 111
// To
set %DestinationCoords [1] [1] 222
set %DestinationCoords [1] [2] 222
set %DestinationCoords [2] [1] 333
set %DestinationCoords [2] [2] 333
И вот на следующим шаге я попал в тупик. Использование массивов в качестве переменных в команде "Drag", не приводит к нужному результату - команда выполняется без ошибок, но ничего не происходит. Я пришел к выводу, что это из-за отсутствия запятых, разделяющих значения координат:
Код
// From
set %SourceCoords [1] [1] 111
set %SourceCoords [1] [2] 111
// To
set %DestinationCoords [1] [1] 222
set %DestinationCoords [1] [2] 222
set %DestinationCoords [2] [1] 333
set %DestinationCoords [2] [2] 333
// Drag 1 item
drag %SourceCoords [1] %DestinationCoords [1] 1
Проблему можно решить использованием строковой переменной, но мне нужен именно массив. Вставка запятых непосредственно в значения елементов массива, ничего не дала.
Конечный код:
Код
// From
set %SourceCoords [1] [1] 111
set %SourceCoords [1] [2] 111
set %SourceCoords [2] [1] 444
set %SourceCoords [2] [2] 444
// To
set %DestinationCoords [1] [1] 222
set %DestinationCoords [1] [2] 222
set %DestinationCoords [2] [1] 333
set %DestinationCoords [2] [2] 333
set %DestinationCoords [3] [1] 555
set %DestinationCoords [3] [2] 555
set #i 2 // Number of %SC elements
set #j 3 // Number of %DC elements
set #k #j // Temp container
set #n #i // Temp container
// Drag 1 item
repeat #i
repet #j
drag %SourceCoords [#i] %DestinationCoords [#k] 1
set #k #k - 1
end_repeat
set #n #n - 1
end_repeat
Буду рад решению данной проблемы либо предложенным альтернативам. Главная цель, поочередный перебор координат мест назначения (куда перетаскивать).