C 編寫控制台走迷宮程式(學習筆記)

2021-09-12 16:40:30 字數 1036 閱讀 2335

整體設計一共建立兩個類: maze(迷宮類)、person(人),採用oop,編寫人走的方法在迷宮裡探索。

1.由於還是在控制台,沒有任何的圖形庫支援,所以迷宮的牆就以*代替,路就是空格。人物呢我則按照教程展示中的使用t。

2.繪製人物移動的動畫的效果,通過使用windos.h標頭檔案下的控制游標的函式實現。

void person::gotoxy(int x, int y)

具體的效果就是控制你的游標到(x,y)位置使你在此進行輸出,所以實現邏輯就是控制游標移動之後直接cout人物的標誌即可。

3.邏輯演算法:整體實現上呢,遵循左手規則

按照這個流程進行邏輯判斷,在設計過程中呢有一些思考點和注意點。

gotoxy這個函式是根據計算機的座標系來定位的,與使用陣列不同,也就是說計算機的左上角為(0,0),右方向為x正方向,下方向為y正方向

其次,我們始終遵循左手規則,但是每次轉身之後你所判斷的左方的位置便隨之改變。

根據流程圖設計出判斷邏輯:

string person::judge(maze map)

else if (map.getmap()[m_iy + m_ifbdirection][m_ix] != '*') //前後走

else

return "fail";

}

這裡方向我只設計了兩個引數,由於之前使用過遊戲引擎,所以在思考時有一點啟發,只定義了兩個引數進行方向的對應,就是fbdirection 和 lrdirection,兩個引數的初始值為-1,因為我設定人物初始方向為正北,所以對應陣列判斷時應該是兩個-1才能判斷到左和前兩個方向。兩個引數的正負用於表示不同方向情況下判斷當前方向所對應的左和前。

ps:由於gotoxy函式的座標特殊性,我們設定人物的座標與計算機座標系相同對應,所以在使用人物座標對陣列進行訪問時應該注意對應關係不要搞混了。

C 控制台 《迷宮》

最近閒來無事,回顧一下以前學過的c 控制台小程式,特發此篇 主體思路 利用二維陣列來實現。效果圖 首先 vs2010,建立控制台程式,然後,新增類labyrinth,該類的 如下,1 using system 23 namespace迷宮4 9 10 11 12 13 14 15 16 17 18 ...

C 編寫控制台程式紙牌遊戲

using system using system.collections.generic using system.text using system.threading namespace consoleapplication2 public void getrandomnum 給number隨...

php學習筆記6 控制台程式

例項在linux下測試通過 控制台直譯器有兩種,一種是cgi的,它會生成帶有http頭輸出 另外一種是 純cli command line inte ce 的,它不會生成http頭。使用方法都是一樣的,記得不要通過標準輸入來輸入程式,而要用php f filename。輸入php v可以知道你的ph...