Сбор пазлов https://www.jigsawplanet.com/:
Ну сперва обсудим настройки которые необходимо сделать на сайте jigsawplanet:
1) Настройки > Игра устанавливаем галочку напротив Автоматически показывать призрак при старте.
2) Видимость призрака [%] устанавливаем на параметр 100%
3) Цвет фона выбираем такой, что бы четко было видно фрагменты.
Далее для простоты ориентации используя прогу
Custom_Desktop_Logo_V2.1___русский.zip ( 429,73 килобайт )
Кол-во скачиваний: 703
накладываем шаблон поверх экрана(сетку пилот не видит)...пример сетки вот:
А дальше используем скрипт для сравнения участки сетки с призраком изображения собираем пазл.
// jigsawplanet полуавтоматизация сбора пазла
// клавиша "S" -- старт/пауза
// клавиша "E" -- выключить скрипт
// клавиша "1" -- установить размер иcкомого фрагмента 15x15
// клавиша "2" -- установить размер иcкомого фрагмента 10x10
// клавиша "3" -- установить размер иcкомого фрагмента 5x5
set linedelay 0 //Установить задержку между строками в 0 мс
while_not KB.GetKeyStateByCode(83) = 1 // S -- отмашка для старта
wait 100
end_while
//Искомые фрагменты/установить размер по умолчанию 15x15
//1-й запоминаемый фрагмент
set #startXA 220
set #startYA 295
set #endXA #startXA + 15
set #endYA #startYA + 15
//2-й запоминаемый фрагмент
set #startXB 1100
set #startYB 295
set #endXB #startXB + 15
set #endYB #startYB + 15
while 1 = 1 // бесконечный цикл
//УПРАВЛЕНИЕ СКРИПТОМ
if KB.GetKeyStateByCode(83) = 1 // S - пауза
wait 1s
while_not KB.GetKeyStateByCode(83) = 1 // S -- отпустить паузу
wait 100
end_while
end_if
if KB.GetKeyStateByCode(69) = 1 // E - выключить скрипт
end_script
end_if
//УПРАВЛЕНИЕ МАСШТАБОМ ИСКОМЫХ ФРАГМЕНТОВ
if KB.GetKeyStateByCode(49) = 1 // клавиша 1 -- установить размер иcкомого фрагмента 15x15
set #endXA #startXA + 15
set #endYA #startYA + 15
set #endXB #startXB + 15
set #endYB #startYB + 15
end_if
if KB.GetKeyStateByCode(50) = 1 // клавиша 2 -- установить размер иcкомого фрагмента 10x10
set #endXA #startXA + 10
set #endYA #startYA + 10
set #endXB #startXB + 10
set #endYB #startYB + 10
end_if
if KB.GetKeyStateByCode(51) = 1 // клавиша 3 -- установить размер иcкомого фрагмента 5x5
set #endXA #startXA + 5
set #endYA #startYA + 5
set #endXB #startXB + 5
set #endYB #startYB + 5
end_if
//ПОИСК
set %a GetImage (#startXA #startYA #endXA #endYA abs) //запомнить 1-й фрагмент пазла в первой области
set #a findimage ( 333 169 1016 558 (%a [1 1]) %arr 2 99 -1 3 abs ) // искать картинку
// вместо имени файла указывается адрес в памяти
// содержащийся в %a [1 1]
log #a // результат поиска
if #a > 0 // если картинка найдена
kleft_down #startXA #startYA abs
wait 500
move %arr [1 1] %arr [1 2]
wait 500
kleft_up %arr [1 1] %arr [1 2] // навести курсор на неё
wait 200
set $b DeleteImage (%a [1 1]) // удалить изображение из памяти
else
hint Не найдено. Переверните фрагмент
end_if
set %b GetImage (#startXB #startYB #endXB #endYB abs) //запомнить 2-й фрагмент пазла во второй области
set #b findimage ( 333 169 1016 558 (%b [1 1]) %arB 2 99 -1 3 abs ) // искать картинку
log #b // результат поиска
if #b > 0 // если картинка найдена
kleft_down #startXB #startYB abs
wait 500
move %arB [1 1] %arB [1 2]
wait 500
kleft_up %arB [1 1] %arB [1 2] // навести курсор на неё
wait 200
set $b DeleteImage (%b [1 1]) // удалить изображение из памяти
else
hint Не найдено. Переверните фрагмент
end_if
wait 100
end_while
end_script
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)