如何用3x18数组表示魔方?

时间:2019-05-28 10:22:40

标签: c# rubiks-cube

我对编写可以建模的C#程序感兴趣,最终将扩展为解决Rubik的多维数据集。我将首先从2x2开始,然后在工作时移至3x3。我试图弄清楚如何在纸上代表魔方,但我觉得这个主意是有缺陷的。

想法是将多维数据集表示为3个2D数组。两个数组将是2x2代表顶面和底面,第三个数组将是2x8代表中间的四个面。但是我不确定如何将这些数组的节点相互关联以对翻译建模。

我也看过一些SO问题,对此问题的解答:https://stackoverflow.com/a/500243/10044000建议使用3x18数组表示多维数据集。但是我无法弄清楚如何用表示翻译来改变立方体的方式工作。如果将顶面和底面连接到数组的每个级别(因此是18),那么最后6个零件的旋转肯定会有所不同吗?

A A A B B B C C C D D D E E E F F F 
A A A B B B C C C D D D E E E F F F 
A A A B B B C C C D D D E E E F F F 
                        ^---------^
                            Translations of pieces E and F, which 
                            represent top and bottom, would be 
                            different than A to D?

有人可以解释这将如何工作吗?

0 个答案:

没有答案