[英]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.