失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python练手项目:计算机自动还原魔方(2)还原顶部

Python练手项目:计算机自动还原魔方(2)还原顶部

时间:2023-06-23 08:31:47

相关推荐

Python练手项目:计算机自动还原魔方(2)还原顶部

上文介绍了计算机自动还原顶部十字,情况比较复杂,一旦完成,后续的步骤就简单一些了。本文在上文的基础上,还原魔方顶部为蓝色面,在顶部蓝色十字的前提下,要求将顶部四个棱角还原为蓝色棱角,棱角的其余两面需要与所在面的中心色一致,如下图所示:

沿用上文的化简方法,还原顶部蓝面比还原顶部蓝色十字简单多了,只需要考虑R面的左上和左下角,采用《软件工程》中介绍的判定表分析方法,分析如下:

将判定表用Python字典实现如下:

conner_action_dict={'01':['Rp', 'Dp','R','D'],'02':['Dp', 'right'],'10':['right'],'11':['Rp', 'Dp','R','D'],'12':['Rp', 'Dp','R','right']}

算法如下:

def 还原upper面():while not 蓝色upper面():coners_list=计算棱角颜色列表() #计算左上、下角编码if len(coners_list)==0: #左、上下角无蓝色right()continueconner =coners_list[0] #左上和左下都有蓝色,只取1个(左下优先)command_list = conner_action_dict[conner] #查字典获得动作列表if conner[1]=='1':while not 左上角到位(): #重复执行公式,直到左上角三色到位for command in command_list:eval(command)()else:for command in command_list:eval(command)()

运行结果:

1)打乱魔方

2)还原顶部蓝色十字

3)还原顶部蓝面

离我们的目标,还原整个魔方不远了!

如果觉得《Python练手项目:计算机自动还原魔方(2)还原顶部》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。