我想要对一个初始化时所有颜色都在正确面上的魔方进行随机打乱。我有旋转魔方的移动函数。我想随机选择50个移动函数来完成随机打乱。
我正在进行这个项目是为了学习更多有关Python的知识,因为我主要使用C++,而Python中没有case/switch语句,所以我尝试使用字典。当我制作字典时,代码似乎出现了某些问题:
当我创建这个字典时,它似乎会运行并执行所有11个条目(我认为是这样)。我找不到更好的方法,至少比一长串if/elif语句更优雅。
!编辑:实施两个建议后,函数的("inverted")标志都没有被设置。例如,调用1和7都给了我down_turn,但输出显示标志未被设置,而在7号时应该已经设置了。
有什么想法吗?
我正在进行这个项目是为了学习更多有关Python的知识,因为我主要使用C++,而Python中没有case/switch语句,所以我尝试使用字典。当我制作字典时,代码似乎出现了某些问题:
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语句更优雅。
!编辑:实施两个建议后,函数的("inverted")标志都没有被设置。例如,调用1和7都给了我down_turn,但输出显示标志未被设置,而在7号时应该已经设置了。
有什么想法吗?
def rotate(face, clockWise=True):
另外,作为使用字典和for
循环的替代方案,您可以制作一个列表并使用random.choice
从中选择元素。 - Joel Cornett