Я хочу рандомизировать кубик Рубика, который инициализирован как завершенный (все цвета на правильных сторонах). У меня есть функции перемещения, которые вращают куб. Я хочу случайным образом выбрать 50 функций подряд, чтобы правильно рандомизировать их.
Я делаю этот проект, чтобы узнать немного больше о Python, так как я в основном работаю с C++ и вижу, что для Python нет регистра/переключателя, поэтому я пробую словарь. Когда я создаю словарь, кажется, что код по какой-то причине выполняется:
def random_cube(self):
scramble = { 0 : self.up_turn(),
1 : self.down_turn(),
2 : self.left_turn(),
3 : self.right_turn(),
4 : self.front_turn(),
5 : self.back_turn(),
6 : self.up_turn("inverted"),
7 : self.down_turn("inverted"),
8 : self.left_turn("inverted"),
9 : self.right_turn("inverted"),
10: self.front_turn("inverted"),
11: self.back_turn("inverted")
}
for x in range(50):
i = random.randint(0,11)
scramble[i]
Итак, когда я создаю этот словарь, кажется, что он по какой-то причине (я думаю) выполняет все 11 записей. Кажется, я не могу найти лучшего способа, по крайней мере, более элегантного, чем длинная строка операторов if/elif.
!EDIT: Реализуя оба предложения, флаг ("перевернутый") для функций не устанавливается ни одним из предложений. Например, вызов 1 и 7 дает мне down_turn, но вывод показывает, что флаг не был установлен, когда он должен был быть на номере 7.
Есть идеи?