關於迷宮的路徑輸出

2021-10-01 18:39:58 字數 3242 閱讀 2059

怕**會有忽略所以全發了上來,麻煩各位

不知道為什麼,總是無法輸出尋得的路徑,用printf()檢測無法進入if (i == g_utexit.x && j == g_utexit.y )中

#include

#include

#include

#include

#include

#include

//匯入聲音標頭檔案

#include

#pragma comment(lib,"winmm.lib")

//匯入聲音標頭檔案庫

#define road 5

#define wall 4

#define begin 9

#define width 23

#define height 23

#define maxsize 100

#define max 100

const point g_utexit =

;typedef

struct

elemtype;

typedef

struct

stack;

//定義棧

intpop

(stack*

& p, elemtype& e)

//出棧

intpush

(stack*

& p, elemtype e)

//入棧

void

initstack

(stack*

& p)

//初始化

intdecide

(stack* t)

//判斷棧是否為空,若為空,返回1

void

destory

(stack*

& p)

intgettop

(stack* p, elemtype& e)

typedef

struct

move;

void

createmaze

(int x,

int y, byte*

* map)

//行數和列數都應該是偶數,最外一層是路,判斷其不為一,所以次一層保持為牆不變

;//打亂方向

int j, temp;

//temp 臨時變數

for(

int i =

0; i <

4; i++

) map[x]

[y]= road;

//把這個點賦值成路

for(

int i =

0; i <

4; i++)}

}void

draw()

void

responsemouse()

}else

if(m.x >=

330&& m.x <=

470&& m.y >=

165&& m.y <=

205)

}else

}closegraph()

;}intserachmroud

(byte*

* map)

int i, j, k =

0, v, i1, j1, l[max]

, t, u;

elemtype e, path[maxsize]

; stack* q;

initstack

(q);

e.x =

1; e.y =

1; e.d =-1

;//入口賦值

push

(q, e)

; map[1]

[1]=

-1;while

(decide

(q))

while

(k >0)

for(t =

0; t < width ; t++

)printf

("\n");

}destory

(q);

return1;

} v =0;

while

(d <4&&

!v)//尋路方向

if(i1 <

8&& i1>

0&& j1 >

0&& j1 <

8&& map[i1]

[j1]==5

)}if(v ==1)

else

}destory

(q);

return0;

}int

main()

srand((

unsigned

int)

time

(null))

;for

(int i =

0; i <= height +

1; i++

)//外面一圈為路

for(

int i =

0; i <= width +

1; i++

)createmaze(2

*(rand()

%(height /2)

+1),

2*(rand()

%(width /2)

+2), map)

;//1---height/2的隨機值 邊界

//出口

map[g_utexit.x +1]

[g_utexit.y +1]

= road;

for(

int i =

1; i <= height; i++

)printf

("\n");

}int m =

serachmroud

(map);if

(m =0)

printf

("迷宮無解");

printf

("繼續遊戲嗎?\n");

int w =

getchar()

;if(w ==89)

;else

if(w ==

78) again =0;

system

("cls");

}return0;

}

迷宮輸出路徑

定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從起點到終點的最短路線。input m和n,表示乙個m n 的二維陣列,表示乙個迷宮。sx,sy,p,q分別表示起點和終點的座標資料保證有唯一解。outp...

迷宮問題(輸出路徑)

迷宮問題 time limit 1000 ms memory limit 65536 kb 64bit io format i64d i64u description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求...

學霸的迷宮 BFS 路徑輸出

問題描述 學霸搶走了大家的作業,班長為了幫同學們找回作業,決定去找學霸決鬥。但學霸為了不要別人打擾,住在乙個城堡裡,城堡外面是乙個二維的格仔迷宮,要進城堡必須得先通過迷宮。因為班長還有妹子要陪,磨刀不誤砍柴功,他為了節約時間,從線人那裡搞到了迷宮的地圖,準備提前計算最短的路線。可是他現在正向妹子解釋...