Доброго времени суток! Есть задача набирать заранее заданные координаты на экранной клавиатуре. Цифры могут быть одно-, двух-, трех- и четырехразрядные, отрицательные и положительные. Способ, которым реализовал, громоздкий и не удобный в плане ввода координат. Хотелось бы просто вбивать координаты как переменные $x=-1257, $y=542. Прошу помочь в оптимизации задачи, заранее спасибо!
[spoiler]
// x-950
// y-505
// координата х
$x1=9
$x2=5
$x3=0
$x4=8
// координата у
$y1=5
$y2=0
$y3=5
$y4=0
// минусы: 1-минус есть, 0 - минуса нет
$minusx=1
$minusy=1
// значимый разряд в координатах
$m1=4
$m2=4
GETSCREEN
IF($minusx=1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "минус.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
END_IF
FOR($i=1,$i<$m1)
IF($i=1)
$n =$x1
END_IF
IF($i=2)
$n =$x2
END_IF
IF($i=3)
$n =$x3
END_IF
IF($i=4)
$n = $x4
END_IF
SWITCH($n)
CASE(0)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "0.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(2)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(3)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "3.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(4)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "4.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(5)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "5.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "6.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(7)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "7.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "8.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(9)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "9.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
END_SWITCH
END_CYC
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "координата у.bmp", -1, 95)
LCLICK($_return1+50, $_return2+3)
WAITMS(500)
END_IF
IF($minusy=1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "минус.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
END_IF
FOR($i=1,$i<$m2)
IF($i=1)
$n =$y1
END_IF
IF($i=2)
$n =$y2
END_IF
IF($i=3)
$n =$y3
END_IF
IF($i=4)
$n = $y4
END_IF
SWITCH($n)
CASE(0)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "0.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(2)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(3)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "3.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(4)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "4.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(5)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "5.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "6.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(7)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "7.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "8.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
CASE(9)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "9.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
END_SWITCH
END_CYC
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "ок.bmp", -1, 95)
LCLICK($_return1+9, $_return2+9)
WAITMS(500)
END_IF
[/spoiler]