Ветвление if

Закрыто
Serg72
Сообщения: 25
Зарегистрирован: 12 сен 2022 04:26

Ветвление if

Сообщение Serg72 »

Ломаю голову как правильно подкорректировать код.

Мы имеем работающий кусок кода.

Код: Выделить всё

  16) coin найден! Переходим к поиску одного из изображений Gold4~5~6~7 в зоне
            // Gold_Area_1~2 и обязательно в любой совокупности изображение k в зоне k_Area_1~2
            if ((hasImg(Gold5, Gold_Area_1, Gold_Area_2) 
              || hasImg(Gold6, Gold_Area_1, Gold_Area_2) 
              || hasImg(Gold7, Gold_Area_1, Gold_Area_2)) 
              && hasImg(k, k_Area_1, k_Area_2)) {
Со временем пришёл к тому что стоит доводить результат до блеска, исправляя шероховатости.
Большенство значений в игре в искомой области они с точкой например 34.7k / 68.2k / / 12.5k
Но как показывает время, значения есть и без точки. Например 54k 29k.
Процент таких значений не большой всего 10 процентов. Но хочется довести дело до конца. Следовательно когда нам попадается число в нашем искомом диапазоне, получается так что число без точки сдвинуто на цифру назад и кликер не может определить его как искомое.
Нужно расширить функционал.
Помогите пожалуйста со скелетом

Вот набросок хода действий.
Проверяем есть ли изображение k (hasImg(k, k_Area_1, k_Area_2))
Если нет k то проваливаемся за скобки к началу скрипта.
Если k найдена то проверяем есть ли изображение точки в зоне (tochka, zone1, zone2)
Если есть то выполняем —

Код: Выделить всё

 if ((hasImg(Gold5, Gold_Area_1, Gold_Area_2) 
              || hasImg(Gold6, Gold_Area_1, Gold_Area_2) 
              || hasImg(Gold7, Gold_Area_1, Gold_Area_2)) 

( и дальше действия по скрипту как раньше)
Если нет то

Код: Выделить всё

 if ((hasImg(Gold5, Gold_Area_3, Gold_Area_4) 
              || hasImg(Gold6, Gold_Area_3, Gold_Area_4) 
              || hasImg(Gold7, Gold_Area_3, Gold_Area_4)) 
Понимаю что скорее всего есть разные способы реализации. Но ломаю голову в одном, как сделать что бы после «развилки» придти к одному опять пути. Грубо говоря что бы в фигурные скобки не постить один и тот же код дважды. Спасибо!
Если будет возможность с вашими комментариями. Что бы было понятно что куда прыгает* :D
Admin
Главный админ
Сообщения: 214
Зарегистрирован: 28 окт 2021 14:01

Re: Ветвление if

Сообщение Admin »

Почему не подходит вариант расширения зоны поиска изображения?
Serg72
Сообщения: 25
Зарегистрирован: 12 сен 2022 04:26

Re: Ветвление if

Сообщение Serg72 »

Потому что в этом случае у числа с точкой в зоне поиска будет 2 числа
Admin
Главный админ
Сообщения: 214
Зарегистрирован: 28 окт 2021 14:01

Re: Ветвление if

Сообщение Admin »

Тогда попробуйте вариант, когда сначала ищем числа без точки в одной области, а если не найдено, проходимся по расширенной зоне Gold_Area_3

Код: Выделить всё

 if ((hasImg(Gold5, Gold_Area_1, Gold_Area_2) 
              || hasImg(Gold6, Gold_Area_1, Gold_Area_2) 
              ...
              ...
              || hasImg(Gold5, Gold_Area_1, Gold_Area_3)
              )) 
              && hasImg(k, k_Area_1, k_Area_2)) {
Serg72
Сообщения: 25
Зарегистрирован: 12 сен 2022 04:26

Re: Ветвление if

Сообщение Serg72 »

Да нет же это не будет работать! Тогда если у нас число 16.8k тогда оно будет срабатывать
Admin
Главный админ
Сообщения: 214
Зарегистрирован: 28 окт 2021 14:01

Re: Ветвление if

Сообщение Admin »

Ну тогда только один вариант. Проверяем на первой позиции наличие нужной цифры если нету, проверяем наличие любой другой. Если нету вообще цифр, проверяем наличие точки, если нету, ищем нужную цифру в новой позиции.
Закрыто