在Prolog中操纵魔方

在Prolog中操纵魔方,prolog,rubiks-cube,Prolog,Rubiks Cube,我想在prolog中对一个混乱的魔方做一些基本的旋转,直到它被解决。 我正在考虑将多维数据集保存为如下列表: [w,w,w,w,w,w,w,w,w], [b,b,b,b,b,b,b,b,b], [g,g,g,g,g,g,g,g,g], [r,r,r,r,r,r,r,r,r], [o,o,o,o,o,o,o,o,o], [y,y,y,y,y,y,y,y,y] ...but scrambled 我如何实现旋转R,U,F,B,D,L,这样当我进行U旋转时,我的立方体看起来像这样: [w,w,w,w

我想在prolog中对一个混乱的魔方做一些基本的旋转,直到它被解决。 我正在考虑将多维数据集保存为如下列表:

[w,w,w,w,w,w,w,w,w],
[b,b,b,b,b,b,b,b,b],
[g,g,g,g,g,g,g,g,g],
[r,r,r,r,r,r,r,r,r],
[o,o,o,o,o,o,o,o,o],
[y,y,y,y,y,y,y,y,y] ...but scrambled
我如何实现旋转R,U,F,B,D,L,这样当我进行U旋转时,我的立方体看起来像这样:

 [w,w,w,w,w,w,w,w,w],
 [r,r,r,b,b,b,b,b,b],
 [o,o,o,g,g,g,g,g,g],
 [g,g,g,r,r,r,r,r,r],
 [b,b,b,o,o,o,o,o,o],
 [y,y,y,y,y,y,y,y,y]    ???
所以我想在控制台中写一些旋转,如果立方体解了,程序返回true;如果立方体没有解,程序返回false


如果有人有一些想法,我会很高兴看到他们:

SWI Prolog从1993年起就有贡献,您也可以浏览一下,其中讨论了一个相关的简单任务。