Доброго времени суток! Есть  задача набирать заранее заданные координаты на экранной клавиатуре. Цифры могут быть одно-, двух-, трех- и четырехразрядные, отрицательные и положительные. Способ, которым реализовал, громоздкий и не удобный в плане ввода координат. Хотелось бы просто вбивать координаты как переменные $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]