¿Cómo ordenar los colores en dos dimensiones?

Actualmente estoy trabajando en un proyecto de pasatiempo para resolver automáticamente un rompecabezas del popular juego móvilAmo hue. El juego está disponibleaquí.

Básicamente, toda la premisa del juego es que te dan un montón de bloques rectangulares de colores organizados en una cuadrícula. Puede intercambiar la mayoría de los bloques, excepto algunos bloques fijos, que están marcados con puntos negros. El objetivo del juego es intercambiar los bloques para obtener un espectro de color bidimensional. Los colores se ordenan de manera que el color de cada bloque sea aproximadamente el promedio de los colores a su alrededor. (Lo siento, no conozco ninguna teoría del color, pero probablemente haya una palabra para lo que estoy buscando.) Así es como se ve un rompecabezas típico:

Ya he podido tomar capturas de pantalla a través de adb, extraer la matriz RGB de los bloques y marcar qué bloques son "fijos". Tengo problemas con la parte algorítmica real de este problema.

Esto es lo que he hecho hasta ahora:

Convertir el RGB a HSV y ordenar los colores por matiz en una lista unidimensional. Esto me da un espectro, pero no sé cómo convertir este resultado en dos dimensiones.Dejando los colores en RGB e intentando trabajar con un color singular. Probablemente haya algún cálculo multivariable que podría hacer aquí, pero la dificultad radica en el hecho de que algunos colores comparten uno o más de sus valores RGB. Sería necesario considerar los tres colores.Usando la distancia euclidiana para encontrar la distancia entre cada par de colores. Entiendo que el objetivo final es que esta distancia sea la más pequeña entre los colores adyacentes, pero la cuadrícula bidimensional lo hace más difícil.Utilizando la distancia euclidiana, he desarrollado una métrica de cuán ideal es una determinada cuadrícula al observar la distancia euclidiana de los colores de los bloques adyacentes. Sin embargo, no puedo encontrar un algoritmo eficiente que pueda descubrir los intercambios necesarios para llegar a un estado ideal.

Respuestas a la pregunta(2)

Su respuesta a la pregunta