Привязать координаты к матрице и кликать

Есть массив с координатами.

class Cords:
    cord11 = (1190, 135)
    cord12 = (1352, 135)
    cord13 = (1514, 135)
    cord14 = (1676, 135)
    cord21 = (1199, 297)
    cord22 = (1352, 297)
    cord23 = (1514, 297)
    cord24 = (1676, 297)
    cord31 = (1190, 459)
    cord32 = (1352, 459)
    cord33 = (1514, 459)
    cord34 = (1676, 459)
    cord41 = (1190, 621)
    cord42 = (1352, 621)
    cord43 = (1514, 621)
    cord44 = (1676, 621)
    cord51 = (1190, 783)
    cord52 = (1352, 783)
    cord53 = (1514, 783)
    cord54 = (1676, 783)
    cord61 = (1190, 945)
    cord62 = (1352, 945)
    cord63 = (1514, 945)
    cord64 = (1676, 945)

Есть матрица со значениями :

[[ 33   0  33 229]
 [233 109 255 109]
 [ 60  72  60  59]
 [108   0 255  24]
 [ 59 229  77 108]
 [ 72  24  77 233]]

И там и там 24 элемента. В матрице 12 пар. Тоесть каждому элементу есть пара.

Нужно как-то привязать координаты к матрице, и кликать мышью по совпадающим значениям.

К примеру в данной матрице 33 должно быть cord11, следующее 33 cor13.

А потом последовательно кликнуть по этим двум координатам.

Как кликать я знаю, не понятно как именно привязать координаты к каждому элементу и найти одинаковые элементы в матрице.


Ответы (1 шт):

Автор решения: gitlng

Насчет привязки - самый простой вариант :

coords = [
          [(1190, 135), (1352, 135), (1514, 135), (1676, 135)],
          [(1199, 297), (1352, 297), (1514, 297), (1676, 297)],
          [(1190, 459), (1352, 459), (1514, 459), (1676, 459)],
          [(1190, 621), (1352, 621), (1514, 621), (1676, 621)],
          [(1190, 783), (1352, 783), (1514, 783), (1676, 783)],
          [(1190, 945), (1352, 945), (1514, 945), (1676, 945)]
]

matrix = [
         [33, 0, 33, 229],
         [233, 109, 255, 109],
         [60, 72, 60, 59],
         [108, 0, 255, 24],
         [59, 229, 77, 108],
         [72, 24, 77, 233]
]

# привязка
matrix_coords = {coords[i][j] : matrix[i][j] for i in range(6) for j in range(4)}

То есть мы создаем два списка и их связываем в словаре <координита> : <значение>. Связываем симметрично. Насчет поиска одинаковых, не совсем понимаю, в каком виде вам их нужно увидеть. Но в целом, вариант: поочередно проверить каждый элемент на равенство с любым другим из матрицы. Да, выглядет так себе, но по логике, должно работать.

→ Ссылка