簡體   English   中英

循環遍歷列表中的元素。 魔方方位問題

[英]Rotation through elements in List. Rubik's cube orientation problem

我正在嘗試編寫一些代碼,以在旋轉魔方后為我提供魔方側面的方向。

這是關於魔方一側的旋轉。 當解決(看白色的一面)時,將通過該旋轉移動的所有 4 個角都具有特定的方向。

我是這樣定義的:

E1 = (W,o,b)
E2 = (W,b,r)
E3 = (W,r,g)
E4 = (W,g,o)

這表示每個角的方向。 第一個變量是白面所面對的面。 (解決了立方體,所以所有的白人都在看白色)第二個是白色左邊的顏色朝向的方向,最后一個是最后一種顏色朝向的一側。 我也可以用 -r 代替 o 和 -b 代替 g,我認為這樣會更容易。

所以當我順時針轉動時,最后兩個 arguments 會旋轉以顯示新的方向。 對於第一個角,它將從 (W,-r,b) 到 (W,b,r),這就是現在第二個角的方向。

所以我需要一種方法來向我展示拐角的新方向。 它應該從( -r -> b -> r -> -b )旋轉值並返回到開頭。

我認為一個列表會很好,但我不知道它是否是最好的方法,因為我不知道如何在將索引增加到最大值后跳回到開頭。

對我來說,它讓我想起了 sin 和 cos 的導數: sin(x) -> cosx -> -sinx -> -cosx 也許我可以用它來旋轉這些索引?

可以使用模數 ( % ) 來實現在列表中的旋轉。

values = ['-r', 'b', 'r', '-b']

index = 0
print(values[index % len(values)])

>>> -r


index = 5
print(values[index % len(values)])

>>> b

有關模運算符的說明,請參閱了解模運算符 %

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM