这是一个魔方打乱发生器的尝试。我有时会一个接一个地转动同一张脸,例如(R,R')。我试图使用 for 和 while 循环来解决这个问题,但它没有用。
import random
def getscramble():
moves = ["R","F","U","L","B","D"]
scramble = []
finascramble = []
for x in range(25):
scramble.append(random.choice(moves))
for x in range(0,len(scramble)-1):
if scramble[x] == scramble[x+1]:
scramble[x] = random.choice(moves)
for x in range(0,len(scramble)-1):
if scramble[x] == "R" and scramble[x+1] == "L":
scramble[x+1] = random.choice(moves)
if scramble[x] == "U" and scramble[x+1]== "D":
scramble[x+1] == random.choice(moves)
if scramble[x] == "F" and scramble[x+1] == "B":
scramble[x+1] == random.choice(moves)
modifiers = ["","2","'"]
for x in range(25):
randy = random.randint(0,2)
finascramble.append(scramble[x]+modifiers[randy])
return " ".join(finascramble)
t = True
while t == True:
again = input()
if again == "s":
print()
print(getscramble())