При каждом движении мыши с нажатой кнопкой пересчитывается смещение курсора. Карта перемещается на это смещение относительно своих текущих координат self.canvas.move("moveable", ...), после чего вызывается подсветка допустимых мест для перемещения. Подсветка допустимых позиций highlight_available_cards проверяет пересечения текущей перемещаемой карты с другими объектами, вычисляет bbox-область вокруг карты и ищет все объекты, которые пересекаются с этой областью. При этом метод игнорирует неподходящие объекты (например, рубашкой вниз или пустые слоты). Если найдена подходящая карта или слот, создается полупрозрачный прямоугольник для подсветки, а все карты в стопке поднимаются выше подсветки self.canvas.tag_raise(card):
о, проглиба тут акк есть, не знал
Стараемся)
Неплохо.
А теперь запусти питон на пасьянсе