三阶魔方自动还原 vc实现
? ? 魔方自動(dòng)求解程序一般有兩種方法,一種是按照人還原魔方的步驟,一步步來(lái),另外一種是使用數(shù)學(xué)方法,魔方自有一套復(fù)雜的數(shù)學(xué)理論,其中較著名的是兩階段算法(壓縮文件中的cube430.exe使用的就是數(shù)學(xué)方法,程序作者便是two-phase算法發(fā)明人,文檔中有該算法的簡(jiǎn)介,遺憾的是沒(méi)有找到該程序的源碼)。
本程序使用的便是第一種方法。
?
程序界面仿wca的cube430.exe(文件夾中的wca-explorer.zip是這個(gè)程序的壓縮包)
程序還有bug,程序可能自動(dòng)生成一個(gè)ml文件,用以保存bug發(fā)生時(shí)的魔方狀態(tài)。但也可能是其他錯(cuò)誤。
如果你把自動(dòng)生成的ml文件(在bug文件夾中)或者錯(cuò)誤信息Email給我,我會(huì)非常感激。
?
歡迎批評(píng)和建議。
?
這個(gè)程序還不完善,現(xiàn)階段僅供學(xué)習(xí)之用:
實(shí)驗(yàn)方法:
Cross:??在Front面實(shí)現(xiàn)Cross,然后把Cross轉(zhuǎn)到底面(x')
L1Corner:?還原底層角塊
L2Edge:?還原第二層棱塊
TopCross:?建立頂層十字
MatchCross:?對(duì)好十字
BackTopCorner?頂層四角塊歸位
RestoreTopCorener還原四角塊
??? 本程序試圖使用兩套手法實(shí)現(xiàn)魔方還原,但現(xiàn)在只實(shí)現(xiàn)了一種(兩套手法的任意一種都能使程序正常運(yùn)行)。兩種手法的區(qū)別在于第三層的還原。前兩層是一樣的。
第一種手法的Cross的實(shí)現(xiàn)使用的是當(dāng)前流行手法。其余的步驟用到的手法主要參考了文件夾中的“魔方教程.pdf”,作者是廈門(mén)大學(xué)的何美生。程序中的函數(shù)與教程中的步驟是一一對(duì)應(yīng)的。
本程序使用到的資料在information文件夾中。
?
下面幾個(gè)函數(shù)
?? //2:cfop
?? void HashOLL(char*);
?? bool IsTopFaceRestored(void);
?? void OLL(void);
?? void HashPLL(char*);//not finished
?? void PLL(void);
?? void CFOP(void);
是第二套手法用到的函數(shù),其中的最后一步
?? void HashPLL(char*);//not finished
? ?void PLL(void);
兩個(gè)函數(shù)尚未實(shí)現(xiàn)。
?
經(jīng)驗(yàn)總結(jié):
歡迎此類(lèi)經(jīng)驗(yàn)的交流,如果你想到或用到了其他的方法,歡迎跟大家一起分享。
?
源碼下載?http://download.csdn.net/source/2772692
有些朋友下載后運(yùn)行不了,是我的失誤,如果你沒(méi)裝vs2008,可能運(yùn)行不了,因?yàn)関s2008編譯后的程序要用到mfc90.dll等幾個(gè)vs2008中的動(dòng)態(tài)鏈接庫(kù),而我在上傳時(shí)沒(méi)考慮到這點(diǎn)。那么暫時(shí)請(qǐng)用自己的編譯器重新編譯吧,把我的代碼只在cXDlg的頭文件和cpp文件中,很容易重新編譯的。
至于解壓不了,應(yīng)該是下載時(shí)出現(xiàn)的錯(cuò)誤,請(qǐng)重新下載。
?
程序運(yùn)行截圖:
1.打亂?
?
?
2.Cross:??在Front面實(shí)現(xiàn)Cross,然后把Cross轉(zhuǎn)到底面(x')
?
3.L1Corner:?還原底層角塊
?
4.L2Edge:?還原第二層棱塊
?
5.TopCross:?建立頂層十字?
?
6.MatchCross:?對(duì)好十字
?
7.BackTopCorner?頂層四角塊歸位
8.RestoreTopCorener還原四角塊
?
?
先前用OpenGL寫(xiě)了一個(gè)三維魔方,但是不會(huì)自動(dòng)還原,而且沒(méi)有加入360°視角轉(zhuǎn)換和旋轉(zhuǎn)動(dòng)態(tài)。
以后可能把自動(dòng)還原寫(xiě)成3d,這樣可以更直觀,更酷
?
?
=====================================================
更新:
魔方自動(dòng)還原程序3D版本和2D 修正版已經(jīng)放出來(lái)了
http://blog.csdn.net/onezeros/archive/2010/10/25/5964280.aspx
總結(jié)
以上是生活随笔為你收集整理的三阶魔方自动还原 vc实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 图像显著区域检测代码及其效果图 sali
- 下一篇: otsu自适应阈值分割的算法描述和ope