Великолепный пример работы с картинками показал
Космич:
http://crapware.aidf.org/forum/index.php?topic=5087.msg33305#msg33305Космич, спасибо!
В задаче всего 4 направления рубки - фланги (если я правильно понимаю задачу).
Если использовать эти направления в именах картинок, то код сильно упрощается и укорачивается.
Первые две цифры в имени картинки - это и есть фланг, или
код клавиши, которая выбирает фланг.
Третья цифра и последующие - порядковый номер картинки (или еще что-то нужное).
Левый:
371.bmp,
372.bmp,
373.bmp,
374.bmp,
375.bmp, ...
Верхний:
381.bmp,
382.bmp,
383.bmp, ...
...
Картинок всего 36 (по 9 штук на фланг), это не много, поэтому можно записать их в строку, а затем загрузить её в массив. Если картинок очень много, то такой массив можно сгенерировать самим скриптом.
Для расшифровки имен картинок можно использовать свитч.
Можно ввести переменные "$NO", "$rub" "$flang", "$click_ok" если они понадобятся по ходу скрипта. Но наверно можно обойтись и без некоторых из них.
STRSEPARATE("371:372:373:374:375:376:377:378:379:391:392:393:394:395:396:397:398:399:381:382:383:384:385:386:387:388:389:401:402:403:404:405:406:407:408:409", ":", $arr)
WHILE(1)
GETSCREEN
FOR($n = 0, $n < ARRSIZE($arr))
IF_PICTURE_IN(534,131,1743,902, STRCONCAT($arr[$n], ".bmp"))
$flang = STRCUT($arr[$n], 1, 2)
SWITCH($flang)
CASE(37)
LOGWRITE ("LEFT")
CASE(38)
LOGWRITE ("UP")
CASE(39)
LOGWRITE ("RIGHT")
CASE(40)
LOGWRITE ("DOWN")
END_SWITCH
// здесь цикл "rub"
ELSE
WAITMS(50)
END_IF
END_CYC
// здесь цикл "NO"
END_CYC
Можно еще выкинуть свитч и переменную "$flang", если по ходу сценария они будут не нужны. Расширение ".bmp" можно сразу дописать к именам файлов, тогда многократно склеивать их не придется.
Останется такой код:
STRSEPARATE("371.bmp:372.bmp:373.bmp:374.bmp:375.bmp:376.bmp:377.bmp:378.bmp:379.bmp:391.bmp:392.bmp:393.bmp:394.bmp:395.bmp:396.bmp:397.bmp:398.bmp:399.bmp:381.bmp:382.bmp:383.bmp:384.bmp:385.bmp:386.bmp:387.bmp:388.bmp:389.bmp:401.bmp:402.bmp:403.bmp:404.bmp:405.bmp:406.bmp:407.bmp:408.bmp:409.bmp", ":", $arr)
WHILE(1)
GETSCREEN
FOR($n = 0, $n < ARRSIZE($arr))
IF_PICTURE_IN(534,131,1743,902, $arr[$n])
KEYPRESS(STRCUT($arr[$n], 1, 2)) // выбираем "flang"
// здесь цикл "rub"
ELSE
WAITMS(50)
END_IF
END_CYC
// здесь цикл "NO"
END_CYC
По циклам "rub" и "NO" информации недостаточно.