我想知道如何为我的函数的输入参数rubik cube运行BFS算法。到目前为止,我已经创建了函数rotateUp(cubeIn, cubeOut), rotateDown(cubeIn, cubeOut2), rotateFront(cubeIn, cubeOut), rotateBack(cubeIn, cubeOut), rotateLeft(cubeIn, cubeOut), rotateRight(cubeIn, cubeOut)
来旋转rubik立方体的每一面。
现在我要运行一些递归函数,我可以在每个可能的方式旋转我的立方体,然后在解决rubik立方体时chceck。
我已经尝试过这个解决方案,但它只会越走越深:
bfs(cubeIn) :-
rotateUp(cubeIn, cubeOut1), bfs(cubeOut1),
rotateDown(cubeIn, cubeOut2), bfs(cubeOut2),
rotateFront(cubeIn, cubeOut3), bfs(cubeOut3),
rotateBack(cubeIn, cubeOut4), bfs(cubeOut4),
rotateLeft(cubeIn, cubeOut5), bfs(cubeOut5),
rotateRight(cubeIn, cubeOut6), bfs(cubeOut6).
所以我想为我的rubik cube问题实现BFS算法,我做了这个:
bfs(cubeIn) :-
rotateUp(cubeIn, cubeOut1),
rotateDown(cubeIn, cubeOut2),
rotateFront(cubeIn, cubeOut3),
rotateBack(cubeIn, cubeOut4),
rotateLeft(cubeIn, cubeOut5),
rotateRight(cubeIn, cubeOut6),
bfs(cubeOut1),bfs(cubeOut2),bfs(cubeOut3),
bfs(cubeOut4),bfs(cubeOut5),bfs(cubeOut6).
但最终它仍然不像BFS那样工作。 难道你不知道我在那里做错了吗?