C語言課程設計-迷宮游戲

C語言課程設計-迷宮游戲

ID:13011514

大?。?0.00 KB

頁數:15頁

時間:2018-07-20

C語言課程設計-迷宮游戲_第1頁
C語言課程設計-迷宮游戲_第2頁
C語言課程設計-迷宮游戲_第3頁
C語言課程設計-迷宮游戲_第4頁
C語言課程設計-迷宮游戲_第5頁
資源描述:

《C語言課程設計-迷宮游戲》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、計算機技術基礎課程設計C語言設計報告題目:完整的二維迷宮游戲學院:工商管理學院專業(yè):信息系統(tǒng)與信息管理班級:050507姓名:孫月指導教師:張首偉設計日期:2004年12月10日題目:完整的二維迷宮游戲一、選題背景:問題的提出:我們在玩迷宮游戲的時候,常常在過了一關之后就結束了,這里設計的迷宮游戲足夠多,難以程度也不盡相同,可以過癮的玩。模仿的有那么一點意思,還請多多指教!二、設計思想:?。?).問題描述用一個m行n列的二維數組來表示迷宮。數組中每個元素的取值為0或1,其中值0表示通路,值1表示阻

2、塞,入口在左上方(1,1)處,出口在右下方(m,n)處,如圖所示。要求求出從迷宮入口到出口有無通路,若有通路則指出其中一條通路的路徑,即輸出找到通路的迷宮數組,其中通路上的“0”用另一數字(例如8)替換,同時打印出所走通路徑上每一步的位置坐標及下一步的方向。(2).求解方法說明:1.為使問題一般化,假設以二維數組maze(1:m,1:n)表示迷宮,并設maze(i,j)表示任一位置。2.對每個位置maze(i,j),可移動的八個方向從正東起順時針方向順序為:E,SE,S,SW,W,NW,N,NE。

3、再用一個二維數組move表示這八個方向上坐標的增量,如下表所示,move(v,1)表示第v個方向上i的增量,move(v,2)表示第v個方向上j的增量。三、程序流程圖四、程序清單:一、二、#include#include#include#include#include#defineN20/*迷宮的大小,可改變*/int??oldmap[N][N];/*遞歸用的數組,用全局變量節(jié)約時間*/int??yes=

4、0;/*yes是判斷是否找到路的標志,1找到,0沒找到*/int??way[100][2],wayn=0;/*way數組是顯示路線用的,wayn是統(tǒng)計走了幾個格子*/voidInit(void);/*圖形初始化*/voidClose(void);/*圖形關閉*/voidDrawPeople(int*x,int*y,intn);/*畫人工探索物圖*/voidPeopleFind(int(*x)[N]);/*人工探索*/voidWayCopy(int(*x)[N],int(*y)[N]);/*為了8個

5、方向的遞歸,把舊迷宮圖拷貝給新數組*/int??FindWay(int(*x)[N],inti,intj);/*自動探索函數*/voidMapRand(int(*x)[N]);/*隨機生成迷宮函數*/voidPrMap(int(*x)[N]);/*輸出迷宮圖函數*/voidResult(void);/*輸出結果處理*/voidFind(void);/*成功處理*/voidNotFind(void);/*失敗處理*/voidmain(void)/*主函數*/{??intmap[N][N];/*迷宮數

6、組*/??charch;??clrscr();??printf("Pleaseselecthand(1)elseauto");/*選擇探索方式*/??scanf("%c",&ch);??Init();??/*初始化*/??MapRand(map);/*生成迷宮*/??PrMap(map);/*顯示迷宮圖*/??if(ch=='1')????PeopleFind(map);/*人工探索*/??else????FindWay(map,1,1);/*系統(tǒng)自動從下標1,1的地方開始探索*/??Re

7、sult();/*輸出結果*/??Close();}voidInit(void)/*圖形初始化*/{??intgd=DETECT,gm;??initgraph(&gd,&gm,"c:\tc");}voidDrawPeople(int*x,int*y,intn)/*畫人工控制圖*/{/*如果將以下兩句注釋掉,則顯示人工走過的路徑,*/??setfillstyle(SOLID_FILL,WHITE);??/*設置白色實體填充樣式*/??bar(100+(*y)*15-6,50+(*x)*15-6,1

8、00+(*y)*15+6,50+(*x)*15+6);/*恢復原通路*/??switch(n)/*判斷x,y的變化,8個方向的變化*/??{????case1:(*x)--;break;/*上*/????case2:(*x)--;(*y)++;break;/*右上*/????case3:(*y)++;break;??/*右*/????case4:(*x)++;(*y)++;break;/*右下*/????case5:(*x)++;break;??/*下*/????case6:(*x

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯系客服處理。