最后一步实际上有两个步骤,第一步是先还原顶部四个棱角,然后还原顶部四个棱块,然后魔方得以全部还原。

万事开头难,越到后面越简单。这两个步骤分别用两个公式即可完成,而且状态也特别简单,算法如下:

def 顶部4棱角到位():c1=(cube_list[3][5][0] == cube_list[4][4][0]) and (cube_list[3][6][0] == cube_list[4][7][0])c2 = (cube_list[3][3][0] == cube_list[4][4][0]) and (cube_list[3][2][0] == cube_list[4][1][0])c3 = (cube_list[3][0][0] == cube_list[4][1][0]) and (cube_list[3][11][0] == cube_list[4][10][0])c4 = (cube_list[3][8][0] == cube_list[4][7][0]) and (cube_list[3][9][0] == cube_list[4][10][0])if c1 and c2 and c3 and c4:return Trueelse:return False
def 当前棱角到位():if (cube_list[3][5][0] == cube_list[4][4][0]) and (cube_list[3][6][0] == cube_list[4][7][0]):return Trueelse:return False
def 还原顶部4棱角():while not 顶部4棱角到位():if not 当前棱角到位():formula_cmd(["R", "U","U","Rp","Up", "R", "U","U","Lp","U", "Rp", "Up", "L"])left()
def 顶部四棱块到位():passe1=cube_list[3][4][0]==cube_list[4][4][0]e2 = cube_list[3][1][0] == cube_list[4][1][0]e3 = cube_list[4][7][0] == cube_list[3][7][0]e4 = cube_list[4][10][0] == cube_list[3][10][0]if e1 and e2 and e3 and e4:return Trueelse:return Falsedef 最后一步():while not 顶部四棱块到位():if cube_list[3][4][0]!=cube_list[4][4][0] and cube_list[3][7][0]!=cube_list[4][7][0] and cube_list[3][1][0]!=cube_list[4][1][0]:formula_cmd(['F','F','U','L','Rp','F','F','R','Lp','U','F','F'])else:left()

运行结果如下:

先前状态,还原到顶部出现绿面:

还原顶部四个棱角

还原顶部四棱块

--end

Python练手项目:计算机自动还原魔方(5)最后一步相关推荐

  1. Python练手项目:玩转魔方

    最近读了魔方有什么难的,七步还原法 (toutiao.com),终于平生第一次把魔方还原了.以前拿起魔方瞎鼓捣,能还原一面都已经是侥幸.现在知道了,玩魔方是需要记公式的.问题在于,记公式对于我也很难. ...

  2. 70个Python练手项目列表 预祝大家 快乐

    小孩眺望远方,成人怀念故乡. 为此给大家分享一下珍藏的Python实战项目,祝大家节日快乐哦!!! Python 前言:不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说 ...

  3. Python毕设-【人脸签到系统】附源码/Python练手项目/Python毕业设计

    本人承诺只做技术分享,永不收费. V----------------->:专栏详情 文章目录 本人承诺只做技术分享,永不收费. V----------------->:专栏详情 一.背景 ...

  4. 70个Python练手项目列表,偷偷练习卷死他们

    不管学习哪门语言都要做出实际的东西来,这个实际的东西就是项目 这里整理了70个Python实战项目列表,都有完整且详细的教程,你可以从中选择自己想做的项目进行参考学习练手,你也可以从中寻找灵感去做自己 ...

  5. python练手项目:2048实现与总结

    python练手项目:利用curses界面对2048的实现与总结 涉及的知识点 基本实现 UI展示 curses的初始化方法:wrapper curses的屏幕展示语句:addscr curses正式 ...

  6. Python毕设-【课堂人脸签到系统】附源码课件/Python练手项目/Python毕业设计

    Python毕设-[课堂人脸签到系统]附源码课件/允许白嫖 文章目录 Python毕设-[课堂人脸签到系统]附源码课件/允许白嫖 系统简介 一.本课题拟解决的问题 二.系统技术栈 三.开发工具 四.数 ...

  7. 10个不到500行代码的超牛Python 练手项目

    10个不到500行代码的超牛Python 练手项目 图:内容概览.注:本文内容由实验楼搜集.整理自Github,实际项目版权归原作者所有. 以下10个练手项目均摘录自一本尚未出版的 Python 神书 ...

  8. python项目-推荐 10 个有趣的 Python 练手项目

    想成为一个优秀的Python程序员,没有捷径可走,势必要花费大量时间在键盘后. 而不断地进行各种小项目开发,可以为之后的大开发项目积攒经验,做好准备. 但不少人都在为开发什么项目而苦恼. 因此,我为大 ...

  9. 有趣的python项目 国外_推荐 10 个有趣的Python练手项目

    想成为一个优秀的开发者,没有捷径可走,势必要花费大量时间在键盘后. 而不断地进行各种小项目开发,可以为之后的大开发项目积攒经验,做好准备. 但不少人都在为开发什么项目而苦恼,因此,我为大家准备了10个 ...

  10. python 适合做什么生意好_推荐 10 个有趣的 Python 练手项目

    想成为一个优秀的Python程序员,没有捷径可走,势必要花费大量时间在键盘后. 而不断地进行各种小项目开发,可以为之后的大开发项目积攒经验,做好准备. 但不少人都在为开发什么项目而苦恼. 因此,我为大 ...

最新文章

  1. 小程序画布画海报保存成图片可以保存实现完整代码
  2. git branch
  3. Docker 从入门到精通(建议收藏的教程)
  4. bios设置 联想m8000t_联想怎样设置双显卡模式 联想设置双显卡模式方法【详解】...
  5. Android签名机制之---签名验证过程详解
  6. 【caffe解读】 caffe从数学公式到代码实现2-基础函数类
  7. HDU 4325 离散化+树状数组 或者 不使用树状数组
  8. hexo和github pages的关系
  9. inSSIDer无线信号扫描工具
  10. Bootstrap 新手学习手册---环境部署与网格系统
  11. 401. 二进制手表
  12. 我设计的五笔日本语输入法和韩语输入法初稿图
  13. java调用按键精灵安卓_安卓版按键精灵基本功能版
  14. 二进制文件操作-存储与读取
  15. 大长今人物系列:长今的心理课——医女张德(转载)
  16. nfcwriter写入_NFC 标签联系人写入教程:Tagstand Writer
  17. 贝壳找房校招java笔试题_2020年最新贝壳找房java面试题分享
  18. u盘乱码怎么办?看他怎么恢复的(不花一分钱)
  19. Unity学习-skybox天空盒纹理
  20. 安卓大屏导航可用万年历

热门文章

  1. index函数c语言,C语言数据结构中定位函数Index的使用方法
  2. Android网络收音机--使用Vitamio解码(一)
  3. ES6三种暴露方法详解
  4. vim基本指令(一)
  5. 【新手入门】自己动手搭建云服务器
  6. Windows Live Writer插件开发经验
  7. win7下安装nodejs
  8. 计算机二级是自学呢还是报班学,计算机二级可以自学好过吗
  9. 伪指令dd 和 操作符dup
  10. 网络中的海底隧道——MPLS