функция. Как видите, интерполяция - это не так уж много кода. С другой стороны, создание комбинации или ротации свопов (как вы предлагаете) может стать отвратительным и, вероятно, намного медленнее ...

тоящее время я работаю над хобби-проектом, чтобы автоматически решить головоломку из популярной мобильной игрыЯ люблю оттенок, Игра доступнаВот.

По сути, вся предпосылка игры заключается в том, что вы получили кучу цветных прямоугольных блоков, организованных в виде сетки. Вы можете поменять местами большинство блоков, за исключением нескольких фиксированных блоков, которые отмечены черными точками. Цель игры - поменять блоки вокруг, чтобы получить двумерный спектр цветов. Цвета отсортированы таким образом, что цвет каждого блока приблизительно равен среднему значению цветов вокруг него. (Извините, я не знаю никакой теории цвета, но, вероятно, есть слово для того, что я ищу.) Вот как выглядит типичная головоломка:

Я уже был в состоянии сделать скриншоты через ADB, извлечь матрицу RGB из блоков и пометить, какие блоки являются «фиксированными». У меня проблемы с реальной алгоритмической частью этой проблемы.

Вот что я сделал до сих пор:

Преобразование RGB в HSV и сортировка цветов по оттенку в одномерном списке. Это дает мне спектр, но я не знаю, как преобразовать этот результат в два измерения.Оставляя цвета в RGB и пытаясь работать с единственным цветом. Вероятно, я мог бы сделать несколько исчислений с несколькими переменными, но трудность заключается в том, что некоторые цвета имеют одно или несколько значений RGB. Надо бы рассмотреть все три цвета.Использование евклидова расстояния, чтобы найти расстояние между каждой парой цветов. Я понимаю, что конечная цель состоит в том, чтобы это расстояние было наименьшим среди смежных цветов, но двумерная сетка делает это более трудным.Используя евклидово расстояние, я разработал метрику того, насколько идеальной является определенная сетка, глядя на евклидово расстояние цветов соседних блоков. Тем не менее, я не могу найти эффективный алгоритм, который может определить перестановки, необходимые для достижения идеального состояния.

Ответы на вопрос(2)

Ваш ответ на вопрос