用java表示魔方的最佳数据结构是什么
在我的问题中,我不必解魔方。。但我必须找到魔方的正面在按照Singmaster的符号做了几次移动后会是什么样子。用java表示魔方的最佳数据结构是什么,java,Java,在我的问题中,我不必解魔方。。但我必须找到魔方的正面在按照Singmaster的符号做了几次移动后会是什么样子。 在这个问题中,什么样的数据结构最适合表示魔方..您可以将所有状态存储在一个多维数组中,如下所示: Object[][][] test = new Object[3][3][3]; 对象应替换为表示多维数据集一侧单个值的类。但是请注意,这个数组也将包含立方体的不可见部分的值(在3x3x3示例中,立方体中部的块)。 更新: 如果您希望使用类解决该问题,那么多维数据集的表示逻辑将变得相当
在这个问题中,什么样的数据结构最适合表示魔方..您可以将所有状态存储在一个多维数组中,如下所示:
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";
}
这是一个很快的可能性,你必须为可能的移动执行逻辑,你必须在每次移动后重建边。但是我不会在这里完全删除数组,因为你可以使用索引来识别你必须移动的层中的立方体部件。非常感谢。我尝试过使用面向对象的概念来做这件事没有更好的方法,这会有所帮助。.Thnx这真的很旧,但重要的是,不要将rubiks立方体视为多个面,而是多个块。带有绿色、红色、蓝色的块将始终具有这些颜色。因此,我不会使用立方体,而是使用层。(底层、中层、顶层)。当然,你也可以从侧面追踪所有这些,我不会以任何形式说,这个答案是错误的!