解谜游戏求算法+可能对解这个问题有帮助的背景知识

解谜游戏《Destination: Primus Vita》最后一关如下图。4个互有重叠的圆环,每个圆环有4个颜色不全相同的小球。在任何圆环的重合处的小球被那些圆环共享。转动一个圆环,则圆环上的小球一起转动。

img


现要求转动各个圆环,最终使各种颜色的小球如下图排布。

img


我自己完全不会,所以直接写代码蛮力求出来了(所以代码应该没啥参考价值,就不放了)。希望了解这类问题的人讲讲大概的算法思路,和可能有助于解决这个问题的背景知识。感谢!