1 回答

TA貢獻2021條經(jīng)驗 獲得超8個贊
24 個旋轉(zhuǎn)中的每一個都可以通過哪個面朝上(6 種可能性)和哪個面朝左(每個向上面 4 種可能性)來唯一識別。
確定朝上面的外部循環(huán),然后確定朝左面的內(nèi)部循環(huán)似乎很容易。鑒于您的旋轉(zhuǎn)調(diào)用所采用的參數(shù),我可能會這樣做:
// Rotating around these axes in sequence will bring each face in turn
// to the top
private static GameObject.AXIS ROTATION_PATH = new GameObject.AXIS[] {
GameObject.AXIS.X_AXIS,
GameObject.AXIS.X_AXIS,
GameObject.AXIS.Z_AXIS,
GameObject.AXIS.X_AXIS,
GameObject.AXIS.X_AXIS,
GameObject.AXIS.Z_AXIS
};
public static int getPossibleSolutionCount(Map<PieceIndex, Piece> pieces)
{
int count = 0;
for (GameObject.AXIS path_axis: ROTATION_PATH)
{
for (int y = 0; y < 4; y++)
{
for (Solution s : solutions)
{
if (s.isDerivedFrom(pieces))
{
count++;
}
}
pieces.values().forEach(piece -> piece.rotate(GameObject.Axis.Y_AXIS));
}
pieces.values().forEach(piece -> piece.rotate(path_axis));
}
return count;
}
希望你看到它應(yīng)該如何工作。我對你的軸指向的方向和旋轉(zhuǎn)的方向做了假設(shè),所以如果 ROTATION_PATH 沒有為你做它應(yīng)該做的事情,那么相應(yīng)地調(diào)整它。
添加回答
舉報