C語言 用C語言實現漢諾塔自動遞迴演示程式

2021-10-05 08:23:59 字數 962 閱讀 3622

1.變介面大小依照輸入遞迴數改變。

2.漢諾塔自動移動演示。

3.採用gotoxy實現流暢重新整理。

4.保留文字顯示遞迴流程**部落格鏈結

輸入要遞迴的漢諾塔數目,在原來的漢諾塔基礎上新增move_play函式展示遞迴,用next陣列儲存每種移動狀態。對應的從哪到哪可自動對應相應的移動方式自動移動。

init函式按比例放大並且列印出圖形介面。

int next[4]

[2]=

,,,}

;//上0 下1 左2 右3;

int turn[2]

[3]=

,//a -> b b -> c a -> c 上右下};

//b -> a c -> b c -> a 上左下

next是移動方向,turn儲存多種移動方向。

例如後台讀取到是 b -> c 則讀取flag為 0對飲 turn【flag】的上右下

然後依次把turn的3個值帶入next實現先上當達到我設定的上界後改變第二次狀態,向右達到右邊設定的界限後向下移動到指定地方,結束一次移動。

一開始我一直都是用cls清屏再列印,但這樣刷屏很嚴重,後來甚至把gotoxy也一樣用,後來我師傅,一位學長給我指點了下,我才發現,gotoxy是可以直接在已有圖形上當作畫筆一樣改變,這樣就實現了十分順滑的執行。

在螢幕下方同樣用gotoxy移動到指定位置列印最基礎的移動資訊。

這個程式是我覺得寫的很巧妙的乙個,本來一開始學漢諾塔時就想著為什麼不能演示出來呢?但隨著想象和現實相差太遠,那時候我發現想很簡單,但想出個框架與實現思路很難,怎麼表示漢諾塔大小和如何讓他自動移動是個很大的問題,後來學習了一些螺旋列印後就想到了用next去實現讓他移動再加個陣列儲存他的移動方式,果然還是實現了。

C語言實現漢諾塔問題

革啟部落格,革啟網,袁歡,袁歡的部落格,袁歡部落格 版本 vs2019社群版 功能 c語言漢諾塔問題 include void move char x,char y void move char x,char y void hannota int n,char one,char two,char t...

簡單漢諾塔的C語言實現

對於漢諾塔問題,很多教材都以其為遞迴演算法的例題,這裡簡單說明一下漢諾塔問題的內容 漢諾塔 又稱河內塔 問題是源於印度乙個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並...

用c語言編寫漢諾塔

1 每次只能移動乙個圓盤 2 圓盤可以插在x,y,z中任意塔座上 3 小圓盤只能在大圓盤的上面 具體遞迴演算法實現 先將n 1個盤子從a移到b,然後把第n個盤子直接從a移到c,最後再將n 1個盤子從b移動到c柱子,大概核心內容就是這個。這個還真不好理解,特別是交換位置那塊 理解起來很難受!defin...