1

Тема: AHK: Определение количества черных и белых квадратиков.

Доброй ночи. Нужен скрипт, который будет считать количество черных и белых квадратиков в окошке GUI. Пробовал каждый раз передвигать мышку на 5 пикселей и проверять цвет под курсором, но передвигается он очень долго и можно один квадратик посчитать несколько раз. Эти квадратики предварительно появляются рандомно, столько, сколько напишешь в Inputbox. Код ниже, если сможете - помогите оптимизировать.
(только эти квадратики идут .png, если их можно рисовать иначе - буду благодарен совету, если нет - то подскажите как их вам скинуть:)


#SingleInstance Force

InputBox, kolvo
Loop, %kolvo%
{
   random, types, 1, 2
   if (types = 1)
   {
      random, xx, 10, 180
      random, yy, 10, 150
      Gui, Add, Picture, x%xx% y%yy%, %A_Desktop%/black.png
   }
   else if (types = 2)
   {
      random, xx, 10, 180
      random, yy, 10, 150
      Gui, Add, Picture, x%xx% y%yy%, %A_Desktop%/white.png
   }
}
Gui, +HWNDhGui1 -DPIScale
Gui, Color, 808080 
Gui, Add, Button, x10 y160 w70 h20 gCheck, Подсчитать
Gui, Add, Text, x10 y187, Black:
Gui, Add, Text, x47 y187 vkolblack, 0
Gui, Add, Text, x10 y200, White:
Gui, Add, Text, x47 y200 vkolwhite, 0
Gui, Show, w200 h230
return

Check:
Mousemove, 10, 30
xmove := 10
ymove := 30

Loop,
{
   MouseMove, %xmove%, %ymove%, 0
   PixelGetColor, pixel, %xmove%, %ymove%
   if (pixel = "0xFFFFFF")
   {
      GuiControlGet, kolwhite
      kolwhite := kolwhite+1
      GuiControl,, kolwhite, %kolwhite%
   }
   else if (pixel = "0x000000")
   {
      GuiControlGet, kolblack
      kolblack := kolblack+1
      GuiControl,, kolblack, %kolblack%
   }
   
   xmove := xmove+2
   if (xmove > 198)
   {
      xmove := 10
      ymove := ymove+2
   }
   if (ymove > 168)
   {
      break
   }
}
return

Escape::
GuiClose:
ExitApp

2

Re: AHK: Определение количества черных и белых квадратиков.

Если вы сами эти квадратики добавляете, зачем их считать позже? Разве вы не знаете, сколько добавили?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Определение количества черных и белых квадратиков.

teadrinker, я лишь ввожу общее количество этих квадратиков. Затем они рандомно сортируются на черные/белые. Так вот мне надо посчитать общее количество белых и общее количество черных квадратиков. Можно конечно добавить переменную, в которую по единице будет прибавляться какой-то из квадратиков, но нужно, чтобы считалось именно "выведенные" квадратики.

Loop, %kolvo%
{
   random, types, 1, 2
   if (types = 1)
   {
      random, xx, 10, 180
      random, yy, 10, 150
      Gui, Add, Picture, x%xx% y%yy%, %A_Desktop%/black.png
   }
   else if (types = 2)
   {
      random, xx, 10, 180
      random, yy, 10, 150
      Gui, Add, Picture, x%xx% y%yy%, %A_Desktop%/white.png
   }
}

4

Re: AHK: Определение количества черных и белых квадратиков.

Morux2112 пишет:

нужно, чтобы считалось именно "выведенные" квадратики

Не очень понял. А в чём будет разница, если считать "выведенные" квадратики, и если считать их во время добавления?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Определение количества черных и белых квадратиков.

Morux2112
Скрипт выводит сам картинки квадратов, он что по вашему не сумеет подсчитать что вывел а что нет? По-моему это уже издевательство. Ну давайте напишем индуский код на 4Гб а почему бы и нет?

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101