在給定一張包含鬼魂座標、目的地座標的地圖資訊後;請試著利用以下的演算機制,幫鬼魂找到一條通往目的地的道路
(Reference: https://www.youtube.com/watch?v=ataGotQ7ir8&ab_channel=RetroGameMechanicsExplained)
演算法運作邏輯如下:
(1)撞到障礙物的方向
(2)往回走的方向
此題將給定主要執行程式main.c (題號.c)、以及Header檔function.h (題號.h);請試著完成Header檔中未實現的函式:CheckIsValidDirection()、CalculateDistance()
Methods:
- void FindPath2Target() – 透過傳入的地圖資訊、鬼魂位置、目的地位置,使用上述演算機制,找到一條可到達目的地的路徑。(無須實作,但希望同學能理解程式碼,對之後的專案會有幫助)
- int CheckIsValidDirection() – 透過傳入的地圖資訊、鬼魂位置、鬼魂移動方向,判斷鬼魂往該方向移動是否會碰壁(這次無法穿越邊界)、或撞到障礙物;若不會則回傳1,反之回傳0
- double CalculateDistance() – 透過傳入的鬼魂位置、目的地位置,計算出兩個位置點之間的直線距離
function.c
一個6x6的地圖資訊,輸入符合以下格式
c c c c c c
c c c c c c
c c c c c c
c c c c c c
c c c c c c
c c c c c c
Note:
輸出符合以下格式:
DDDDDD...
Note: