Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как на питоне добавить к этому коду. два разных цвета

Алексей Гнутов Ученик (92), на голосовании 3 недели назад
import keyboard
import time
import numpy as np
from mss import mss
import pyautogui as pg

monitor = {
"left": 5,
"top": 30,
"width": 967,
"height": 686,
}


# Поиск цвета на экране
def find_color(our_color, monitor={}):
# Возмём кусок экрана
m = mss()

# Получаем пиксель с экрана монитора
img = m.grab(monitor)

# Преобразуем этот пиксель в матрицу
img_arr = np.array(img)

# Поиск цвета (b, g, r, alpha)
our_map = (our_color[2], our_color[1], our_color[0], 255)
indexes = np.where(np.all(img_arr == our_map, axis=-1))
our_crd = np.transpose(indexes)
return our_crd


# Искомый цвет
our_color = (66,66,255)

while True:
result = find_color(our_color, monitor)
if result.__len__():
x = result[0][1] + monitor.get('left')
y = result = [0][0] + monitor.get('top')
pg.click (x, y)
pg.moveTo(x, y)
pg.press ('enter')

# Ожидание
time.sleep(3)
как сюда добавить другой цвет и чтоб тот цвет был приоритнее our_color = 66,66,255
и когда его находит выполняло действия
pg.click(x, y)
time sleep(1.2)
pg.press ('q')
и после их выполнения опять запускался поиск цвета our_color = 66.66.255
подскажите
Голосование за лучший ответ
Рустам Абдрашитов Мыслитель (9542) 1 месяц назад
 import keyboard 
import time
import numpy as np
from mss import mss
import pyautogui as pg

monitor = {
"left": 5,
"top": 30,
"width": 967,
"height": 686,
}

def find_color(target_color, monitor):
m = mss()
img = m.grab(monitor)
img_arr = np.array(img)

target_map = (target_color[2], target_color[1], target_color[0], 255)
indexes = np.where(np.all(img_arr == target_map, axis=-1))
return np.transpose(indexes)

def perform_click_action(x, y, key=None):
pg.click(x, y)
if key:
time.sleep(1.2)
pg.press(key)

priority_color = (255, 0, 0)
our_color = (66, 66, 255)

while True:
result_priority = find_color(priority_color, monitor)
if result_priority.size > 0:
x = result_priority[0][1] + monitor['left']
y = result_priority[0][0] + monitor['top']

perform_click_action(x, y, key='q')
continue

result_our_color = find_color(our_color, monitor)
if result_our_color.size > 0:
x = result_our_color[0][1] + monitor['left']
y = result_our_color[0][0] + monitor['top']

perform_click_action(x, y, key='enter')

time.sleep(3)
Алексей ГнутовУченик (92) 1 месяц назад
что сюда добавить еще нажатия клавишь, что нужно дописать, и key это то?
Алексей Гнутов Ученик (92) Алексей Гнутов, key что значит тут
Похожие вопросы