學過程序的人一定記得漢諾塔.我們學的第一個程序是HelloWorld,而碰到的第一個坑就是漢諾塔,短短十幾行代碼,不知花費了多少時間精力去理解.我記得當年的開發環境還是藍屏的,漢諾塔程序的輸出還是一行行枯燥無趣的字符串.現在重寫了這個程序,以三維可視化的方式看下漢諾塔的運行過程.
1 void hanoi(char src, char mid, char dst, Yuint stacks, Ychar* pMoveSteps, Yuint& index) 2 { 3 if (stacks == 1) 4 { 5 Ychar& value = pMoveSteps[index]; 6 value = (src<<4) + dst; 7 //printf("Move disk %d from %c to %c\n", n, src, dst);
8 index++; 9 } 10 else
11 { 12 hanoi(src, dst, mid, stacks - 1, pMoveSteps, index); 13 Ychar& value = pMoveSteps[index]; 14 value = (src<<4) + dst; 15 index++; 16 //printf("Move disk %d from %c to %c\n", n, src, dst);
17 hanoi(mid, src, dst, stacks - 1, pMoveSteps, index); 18 } 19 }
游戲說明:
"HanoiSP.scr"全屏可執行程序
"Hanoi.exe"窗口可執行程序
鼠標左鍵右鍵拖動,調節視角.
鼠標滾輪,調節攝像機的遠近.
X,恢復為默認視角並停止視角旋轉.
空格,P,暫停與恢復.
ESC,退出.
R,漢諾塔重新開始.
[,- 減少漢諾塔層數.最小為2
],= 增加漢諾塔層數.最多為25
屏保設置方式
XP:將目錄下的所有文件拷貝到WINDOWS系統目錄下如"C:\WINDOWS\system32"
WIN7,WIN8:將目錄下的所有文件拷貝到"C:\WINDOWS\SysWOW64"或"C:\WINDOWS\SysWOW32"目錄下
在設置屏保的對話框中,選擇"HanoiSP"
下載地址: