擅长:python、mysql、java
<p>在将可能的移动传递给<code>random.choice</code>之前,可以使用set difference从可能的移动中删除上一个移动的相反部分:</p>
<pre><code>import random
scramble_length = random.randint(9, 24)
moves = {"U", "U'", "D", "D'", "B", "B'", "F", "F'", "L", "L'", "R", "R'"}
move = ''
for x in range(scramble_length):
move = random.choice(tuple(moves - {move[0] if len(move) == 2 else move + "'"}))
print(move)
</code></pre>
<p>样本输出:</p>
<pre><code>B'
U'
D
F
B'
B'
R'
F'
R'
B'
F
D'
B'
R
B'
F
U'
D
D
U
L
U'
B
</code></pre>