Автокликер Clickermann :: Форум

Основной раздел => Использование => Topic started by: blazzed on March 08, 2014, 03:01:04 AM

Title: Решено: Прошу подсказки, компоновка переменных
Post by: blazzed on March 08, 2014, 03:01:04 AM
Доброго времени суток!
Возникла недавно задача считать 36 точек с экрана (квадрат 6х6) и найти одинаковые. Координаты точек я узнал, но как их получить?

Вот пример скрипта (цикл в цикле)
Code: (clickermann) [Select]
$x = 100
$y= 100
$c = -41
$d = -41

GETSCREEN

FOR ($a, $a <6)
   Inc ($d, 41)
   $c = -41
   FOR ($b, $b <6)
      Inc ($c, 41)
     
     
      $var$a$b = pxl ($x+307+$c,$y+144+$d)
      LOGWRITE ("a = ",$a , " b = ", $b, " " ,$var$a$b)
     
   END_CYC
END_CYC

Вызов любой переменной (к примеру, $var10) возвращает ноль.

Кто сталкивался с такой проблемой, подскажите, в чём ошибка?
Title: Re: Прошу подсказки, компоновка переменных
Post by: Крис Тинка on March 08, 2014, 05:58:11 AM
Кликерман так не работает с переменными, тебе нужно использовать массивы.

Code: (clickermann) [Select]
$x = 100
$y= 100
$c = -41
$d = -41
define($n)
GETSCREEN
 
FOR ($a, $a <6)
   Inc ($d, 41)
   $c = -41
   FOR ($b, $b <6)
      Inc ($c, 41)

      $var[$n] = pxl ($x+307+$c,$y+144+$d)
      LOGWRITE ("a = ",$a , " b = ", $b, " " ,$var[$n])
      INC($n)
   END_CYC
END_CYC
halt
Title: Re: Прошу подсказки, компоновка переменных
Post by: blazzed on March 08, 2014, 02:22:38 PM
тебе нужно использовать массивы.

Да, но тут жёсткая привязка к расположению точек. Если бы можно было создать двумерный массив, то этого вопроса не было. А мне на основе каждой точки надо найти по определённым шаблонам две соседние, у которых такие же пиксели.
Пример:
Code: (clickermann) [Select]
FOR ($a, $a<6)
FOR ($b, $b<6)
IF (($var$a$b = $var$a-1$b+1) & ($var$a$b = $var$a$b+2))
LOGWRITE ("BINGO ", $a,$b, " ", $a+1,$b, " ", $a+1,$b+1)
HALT
END_IF
END_CYC
END_CYC

P.S. Это всё делается для игры 3 в ряд, где есть поле размером 6х6.
Title: Re: Прошу подсказки, компоновка переменных
Post by: Oraven on March 08, 2014, 02:58:52 PM
Посмотри здесь
http://crapware.aidf.org/forum/index.php?topic=1047.0 (http://crapware.aidf.org/forum/index.php?topic=1047.0)
Title: Re: Прошу подсказки, компоновка переменных
Post by: Крис Тинка on March 08, 2014, 04:57:06 PM
Ну тогда так:
Code: (clickermann) [Select]
$x = 100
$y= 100
$c = -41
$d = -41

GETSCREEN

FOR ($a, $a <6)
   Inc ($d, 41)
   $c = -41
   FOR ($b, $b <6)
      Inc ($c, 41)
     
     
      $var[10*$a + $b] = pxl ($x+307+$c,$y+144+$d)
      LOGWRITE ("a = ",$a , " b = ", $b, " " ,$var[10*$a + $b])
     
   END_CYC
END_CYC
HALT
Title: Re: Прошу подсказки, компоновка переменных
Post by: blazzed on March 12, 2014, 02:23:52 PM
Посмотри здесь
http://crapware.aidf.org/forum/index.php?topic=1047.0 (http://crapware.aidf.org/forum/index.php?topic=1047.0)

Огромное спасибо, даёт ответы на все мои вопросы  :D


Крис Тинка, спасибо за
Code: (clickermann) [Select]
$var[10*$a + $b]Его стоит взять на вооружение... Во всяком случае до тех пор, пока не будут реализованы двухмерные массивы
Title: Re: Прошу подсказки, компоновка переменных
Post by: Vint on March 12, 2014, 03:10:02 PM
Крис Тинка, спасибо за
Code: (clickermann) [Select]
$var[10*$a + $b]Его стоит взять на вооружение... Во всяком случае до тех пор, пока не будут реализованы двухмерные массивы
Только не
Code: (clickermann) [Select]
$var[10*$a + $b]а
Code: (clickermann) [Select]
$var[6*$a + $b]
Title: Re: Прошу подсказки, компоновка переменных
Post by: blazzed on March 12, 2014, 04:07:38 PM
Только не
Code: (clickermann) [Select]
$var[10*$a + $b]а
Code: (clickermann) [Select]
$var[6*$a + $b]

Как раз 10*$a, тогда у нас любая переменная будет иметь порядочный вид (12, 44, 32, 65, и т.д.) И мы сможем, зная место в массиве, вытащить её в любой момент.
Во всяком случае, для меня более понятная логика (первая цифра - ряд, вторая строка)
Title: Re: Прошу подсказки, компоновка переменных
Post by: Vint on March 12, 2014, 05:18:51 PM
Ааааа. Ну если мыслить частностями. Я же расчитываю на все случаи жизни. А если будет 12 на 12 ???

Тем более мне плевать какая там строка, всё равно перебираем переменные в цикле. Я к конкретной вручную не обращаюсь.
Что-то типа $map[$sost_X+$sost_Y*$max_X]
Title: Re: Прошу подсказки, компоновка переменных
Post by: blazzed on March 12, 2014, 06:12:44 PM
Ааааа. Ну если мыслить частностями. Я же расчитываю на все случаи жизни. А если будет 12 на 12 ???

Тем более мне плевать какая там строка, всё равно перебираем переменные в цикле. Я к конкретной вручную не обращаюсь.
Что-то типа $map[$sost_X+$sost_Y*$max_X]

Ну если будет 12 на 12, то можно использовать 1000*$a+$b (1212 в данном случае, или 1001 для $a=1, $b=1). Данное соответствие необходимо больше для наглядности логики решения задачи, чем для какой-то функциональной нагрузки.

В любом случае, спасибо за скрипт. Там есть реализация того, что я хотел получить. Хотя и немного в другой форме. В свободное время попытаюсь осилить его и модифицировать под свои нужды  :)