三阶魔方的演示-用Python实现

相信很多人都玩过魔方,最常见的就是三阶魔方。初级的玩家在玩的时候不可避免的遇到一个问题就是玩着玩着,还原不了了。如果那教程来照着还原,一步一步下来也很费劲。我开发这个程序的目的是为了让初学者很方便的学习玩魔方的方法。魔方是有很多公式的,但是如果一味的记公式,一方面公式非常多也很难记住,另一方面失去了思考的乐趣。
要演示好一个三阶魔方也并不是很简单的。首先,魔方的旋转是多个块相关的,并且不同的旋转操作,关联的块也不同。另外,魔方的颜色信息也需要考虑。
三阶魔方有三层,每层9个块,共27个块(实际的魔方中间是个旋转支架,中间那块其实不需要考虑)。本实现为27个魔方块分别建立一个数据包。块数据包包含了该块原始状态的位置,方向,每个面的颜色,以及哪些面是外层面,哪些是隐藏在内层的面等。当执行一个操作时,操作的不同将影响哪些块需要旋转,以及绕那个轴,哪个方向旋转。另外,为了改善视觉上的体验,旋转可以瞬间完成,也可以慢动作完成,这样可以看到旋转的过程。这就要求旋转的角度不光要考虑90度的情况,还要考虑旋转到中间某个位置时该如何显示。
说到显示,由于三阶魔方是个立方体,我们观察的时候希望能看到三个面(也只能看到三个面),那么就有个视角投影的问题。我们需要将魔方整体倾斜一定的角度。学习魔方的时候我们不光要知道看得见的面,也需要知道看不见的面,因此,本设计将背面的三个面也显示在旁边,共学习者或游戏者参考。
本程序对所有的旋转操作都提供了按钮,同时还提供了脚本输入栏,学习者可以将常用的操作组合输入到脚本栏来检验一段连续操作后魔方的情况。当然,随时能将魔方还原到初始状态也是必不可少的功能。
下面是程序运行时的截图,该程序不需要太多三方库,用Tkinter来实现GUI操作。对Python初学者也是个例程。
由于编写的时候也是不多调试才能完成,本人又没有太多时间做代码的优化,所以代码中有少量垃圾代码也请见谅。

下面是源代码的链接:
https://download.csdn.net/download/iceran1977/58809756
下面是已经编译好的可执行程序:
https://download.csdn.net/download/iceran1977/58775153

三阶魔方的演示-用Python实现-附源码相关推荐

  1. OpenCV中确定像素位置及获取、修改像素BGR值讲解及演示(Python实现 附源码)

    需要源码和图片集请点赞关注收藏后评论区留言~~~ 像素是图像的最小单位.每一幅图像都是由M行N列的像素组成的,其中每一个像素都存储一个像素值.以灰度图像为例,计算机通常把灰度图像的像素处理为256个灰 ...

  2. 径向基神经网络(RBFNN)的实现(Python,附源码及数据集)

    文章目录 一.理论基础 1.径向基神经网络结构 2.前向传播过程 3.反向传播过程 4.建模步骤 二.径向基神经网络的实现 1.训练过程(RBFNN.py) 2.测试过程(test.py) 3.测试结 ...

  3. 【Python机器学习】层次聚类AGNES、二分K-Means算法的讲解及实战演示(图文解释 附源码)

    需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 层次聚类 在聚类算法中,有一类研究执行过程的算法,它们以其他聚类算法为基础,通过不同的运用方式试图达到提高效率,避免局部最优等目的,这类算法主要有 ...

  4. 《权力的游戏》最终季上线!谁是你最喜爱的演员?这里有一份Python教程 | 附源码...

    译者 | 刘畅 编辑 | 琥珀 出品 | AI科技大本营(id:rgznai100) <权力的游戏>最终季已于近日开播,对于全世界翘首以待的粉丝们来说,其最大的魅力就在于"无法预 ...

  5. 反向传播神经网络(BPNN)的实现(Python,附源码及数据集)

    文章目录 一.理论基础 1.前向传播 2.反向传播 3.激活函数 4.神经网络结构 二.BP神经网络的实现 1.训练过程(BPNN.py) 2.测试过程(test.py) 3.测试结果 4.参考源码及 ...

  6. LSTM神经网络实现对股市收盘价格的预测实战(python实现 附源码 超详细)

    源码或数据集请点赞关注收藏后评论区留言或者私信博主要 由于独特的设计结构 LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件. LSTM是一种含有LSTM区块(blocks)或其他的一种类神 ...

  7. 用python写的登录界面的脚本_记录 制作校园网登陆脚本 python编写 附源码

    5 importos6 importre7 8 classAOA(object):9 #获取本机IP 10 defget_ip(self):11 try:12 s =socket.socket(soc ...

  8. 动态规划法在汽车租赁问题中的实战(使用策略迭代法得到最优策略和最优价值 python实现 附源码)

    需要源码请点赞关注收藏评论区留言或私信博主~~~ 策略迭代的关键部分是策略评估,首先评估状态的价值,然后根据状态的动作值进行相应的策略改进,并进行下一轮评估和改进.直到策略稳定,策略改进可以通过求解静 ...

  9. python撩人的代码,老师教已毕业的学生,用Python代码每天不定时撩女友,附源码文件...

    原本就是学生会主席,在学校如此优秀的他,毕业参加工作,依然展现出好强的一面. 每天认真的工作,即使在工作之余也要用来给自己充电,所以难免会忽略女友,不够关心,免不了发脾气,甚至是争吵. 有一天,曾经大 ...

最新文章

  1. [转贴] 游戏服务器架构二
  2. 1分钟了解CDN内容分发技术
  3. springboot不能加载https的证书文件(二)
  4. 居家洁士扫地机器人_掌握核心技术扫地机器人品牌推荐,由利和石头扫地机器人哪个牌子好?...
  5. Steady Cow Assignment
  6. 蓝桥杯 ALGO-145 算法训练 4-1打印下述图形
  7. 剑指offer面试题[16]-反转链表
  8. python 微信公众号发文章_Python 微信公众号文章爬取
  9. 苹果产品信息查询_科普:苹果官网那些隐藏着的超实用工具
  10. 2019京东全球科技探索者大会议程抢先曝光!
  11. 如何检查SFP光模块的光信号强度?
  12. 银行核心系统之假期表
  13. 2021-2022上学期 奖状的清单
  14. 新手小白做短视频,一个月收益10000多,超过自己的主业收入
  15. unity捕鱼达人3----UI界面的制作以及相关功能的实现
  16. POJ1008 玛雅历
  17. redhat linux 7.2系统安装详细过程
  18. 算法中的最优化方法总结(中国科学院大学)
  19. Java——Java连接Jira,创建、修改、删除工单信息
  20. 图书馆借阅代码Java_java图书馆管理系统源代码 图书借阅和归还管理

热门文章

  1. 一个可以给文件添加备注信息的小工具
  2. 【微信小程序】零基础学 | 小程序语法
  3. 山寨“苹果皮”上市或涉嫌侵权iPhon
  4. 连连跨境收款用起来如何?有哪些解决跨境行业痛点的产品?
  5. 微信小程序调试webview_微信小程序内嵌webview相关知识点整理
  6. 恶搞版西游记,99%的人看完后当场含笑而死
  7. 灵遁者诗歌集《很白很白的云》序言内容
  8. MTK屏蔽谷歌服务报错对话框KK
  9. Java中的专业术语
  10. 如何开搓饵不掉钩_防止小鱼闹钩的方法