Привязать координаты к матрице и кликать
Есть массив с координатами.
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 шт):
Насчет привязки - самый простой вариант :
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)}
То есть мы создаем два списка и их связываем в словаре <координита> : <значение>. Связываем симметрично. Насчет поиска одинаковых, не совсем понимаю, в каком виде вам их нужно увидеть. Но в целом, вариант: поочередно проверить каждый элемент на равенство с любым другим из матрицы. Да, выглядет так себе, но по логике, должно работать.