用java表示rubik立方体的最佳数据结构是什么



在我的问题中,我不必求解rubik立方体。。但我必须根据星爷的记法,在做了几次移动后,才能发现红宝石立方体的正面会是什么样子。在这个问题中,什么样的数据结构最适合表示rubik立方体。。

您可以将所有状态存储在一个多维数组中,如下所示:

Object[][][] test = new Object[3][3][3];

对象应替换为表示多维数据集一侧的单个值的类。但请注意,此数组还将包括立方体的不可见部分的值(在3x3x3示例中,立方体中间的块)。

更新:

如果您希望使用类来解决该问题,则多维数据集的表示逻辑会变得相当复杂。

class Cube {
    private CubeSide bottom = new CubeSide();
    private CubeSide top = new CubeSide();
    private CubeSide left = new CubeSide();
    private CubeSide right = new CubeSide();
    private CubeSide front = new CubeSide();
    private CubeSide back = new CubeSide();
}
class CubeSide {
    private CubePart[][] = new CubePart[3][3];
}
class CubePart {
    private String color = "red";
}

好吧,这是一种快速的可能性,你必须执行可能的动作的逻辑,你必须在每次动作后重建双方。但我不会在这里完全删除数组,因为你可以使用索引来识别层中的CubeParts,你必须非常容易地移动。

最新更新