學過程式的人一定記得漢諾塔.我們學的第乙個程式是helloworld,而碰到的第乙個坑就是漢諾塔,短短十幾行**,不知花費了多少時間精力去理解.我記得當年的開發環境還是藍屏的,漢諾塔程式的輸出還是一行行枯燥無趣的字串.現在重寫了這個程式,以三維視覺化的方式看下漢諾塔的執行過程.
遊戲說明:
"hanoisp.scr"全屏可執行程式
"hanoi.exe"視窗可執行程式
滑鼠左鍵右鍵拖動,調節視角.
滑鼠滾輪,調節攝像機的遠近.
x,恢復為預設視角並停止視角旋轉.
空格,p,暫停與恢復.
esc,退出.
r,漢諾塔重新開始.
[,- 減少漢諾塔層數.最小為2
],= 增加漢諾塔層數.最多為25
屏保設定方式
xp:將目錄下的所有檔案拷貝到windows系統目錄下如"c:\windows\system32"
win7,win8:將目錄下的所有檔案拷貝到"c:\windows\syswow64"或"c:\windows\syswow32"目錄下
在設定屏保的對話方塊中,選擇"hanoisp"
漢諾塔合集之漢諾塔3
漢諾塔3 步驟分析 1.當只有乙個圓盤時,要從a到b再到c 2.同樣擴充套件經典漢諾塔問題來看,先把a柱上 n 1 個圓盤,經b移動到c 3.把最後乙個圓盤從a移動到b 4.把c柱上的 n 1 個圓盤,經b移動 移回 到a 5.把b上的最後乙個圓盤從b移到c 6.最後把a上的 n 1 個圓盤經過b移...
漢諾塔程式
include stdio.h void move char x,char y 自定義move函式,用來將塊從起始柱子x移動到目標柱子y,這裡的x,y為形參,不代表具體哪根柱子 void hannuota int n,char a,char b,char c 自定義hannuota函式,這裡的a,b...
漢諾塔完整程式小結
漢諾塔問題 漢諾塔的演算法就3個步驟 第一,把a上的n 1個盤通過c移動到b。第二,把a上的最下面的盤移到c。第三,因為n 1個盤全在b上了,所以把b當做a重複以上步驟就好了。所以演算法看起來就簡單多了。不過,思考過程還是很痛苦的,難以理解。遞迴中會儲存資料的好處在這裡又得到體現 2014 4 2 ...