三阶魔方的演示-用Python实现-附源码
三階魔方的演示-用Python實現(xiàn)
相信很多人都玩過魔方,最常見的就是三階魔方。初級的玩家在玩的時候不可避免的遇到一個問題就是玩著玩著,還原不了了。如果那教程來照著還原,一步一步下來也很費勁。我開發(fā)這個程序的目的是為了讓初學(xué)者很方便的學(xué)習(xí)玩魔方的方法。魔方是有很多公式的,但是如果一味的記公式,一方面公式非常多也很難記住,另一方面失去了思考的樂趣。
要演示好一個三階魔方也并不是很簡單的。首先,魔方的旋轉(zhuǎn)是多個塊相關(guān)的,并且不同的旋轉(zhuǎn)操作,關(guān)聯(lián)的塊也不同。另外,魔方的顏色信息也需要考慮。
三階魔方有三層,每層9個塊,共27個塊(實際的魔方中間是個旋轉(zhuǎn)支架,中間那塊其實不需要考慮)。本實現(xiàn)為27個魔方塊分別建立一個數(shù)據(jù)包。塊數(shù)據(jù)包包含了該塊原始狀態(tài)的位置,方向,每個面的顏色,以及哪些面是外層面,哪些是隱藏在內(nèi)層的面等。當(dāng)執(zhí)行一個操作時,操作的不同將影響哪些塊需要旋轉(zhuǎn),以及繞那個軸,哪個方向旋轉(zhuǎn)。另外,為了改善視覺上的體驗,旋轉(zhuǎn)可以瞬間完成,也可以慢動作完成,這樣可以看到旋轉(zhuǎn)的過程。這就要求旋轉(zhuǎn)的角度不光要考慮90度的情況,還要考慮旋轉(zhuǎn)到中間某個位置時該如何顯示。
說到顯示,由于三階魔方是個立方體,我們觀察的時候希望能看到三個面(也只能看到三個面),那么就有個視角投影的問題。我們需要將魔方整體傾斜一定的角度。學(xué)習(xí)魔方的時候我們不光要知道看得見的面,也需要知道看不見的面,因此,本設(shè)計將背面的三個面也顯示在旁邊,共學(xué)習(xí)者或游戲者參考。
本程序?qū)λ械男D(zhuǎn)操作都提供了按鈕,同時還提供了腳本輸入欄,學(xué)習(xí)者可以將常用的操作組合輸入到腳本欄來檢驗一段連續(xù)操作后魔方的情況。當(dāng)然,隨時能將魔方還原到初始狀態(tài)也是必不可少的功能。
下面是程序運行時的截圖,該程序不需要太多三方庫,用Tkinter來實現(xiàn)GUI操作。對Python初學(xué)者也是個例程。
由于編寫的時候也是不多調(diào)試才能完成,本人又沒有太多時間做代碼的優(yōu)化,所以代碼中有少量垃圾代碼也請見諒。
下面是源代碼的鏈接:
https://download.csdn.net/download/iceran1977/58809756
下面是已經(jīng)編譯好的可執(zhí)行程序:
https://download.csdn.net/download/iceran1977/58775153
總結(jié)
以上是生活随笔為你收集整理的三阶魔方的演示-用Python实现-附源码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 30.Android调试-连接夜深模拟器
- 下一篇: python-scrapy-MongoD