14869 - Walk Through The Map   

Description

給定一個 5×5 的二維陣列 map 與一個長度為 10 的 enum 型別陣列。map 中的 'x' 代表玩家的位置,字元 '#' 代表障礙物,enum型別陣列中movement的每個元素代表接下來的移動方向。玩家將依序執行這 10 個移動指令,並更新最終位置,移動方向遇到障礙物時則不移動至該方向。

 

給定主要執行程式main.c (題號.c)、以及Header檔function.h (題號.h);請試著完成Header檔中未實現的函式:mapMove()

function.h:

enum Move(其中包含四個移動方向)

  • U: 代表向上移動
  • R: 代表向右移動
  • D: 代表向下移動
  • L: 代表向左移動

 

Methods:

- void mapMove(char map[5][5], enum Move *movement) – 將傳入5*5二維陣列map,和enum陣列的第一個位址的指標;找出移動後抵達的位置,並印出,若移動超出地圖範圍,請輸出"Out of Boundary!”

 

hint:

  1. 可以透過movement++來取得enum陣列中的下一個元素

function.c

#include "function.h"
 
void mapMove(char map[5][5], enum Move *movement)
 
{
 
  // TO DO
 
}
 

Input

輸入符合以下格式

map

movement

 

Note:

  1. map代表地圖,為5*5的陣列,其中 ’x ’為人的所在位置,’#’為障礙物
  2. movement為一個由enum Move組成的陣列,長度為10(陣列中含10個enum元素)
  3. main.c 已處理輸入,不需自行處理

(詳見Sample Input)

 

Output

輸出符合以下格式:

 

移動距離在地圖內:(印出地圖以及人移動後的位置)

--#--

-----

--x--

---#-

-----

 

移動距離超過地圖:

Out of Boundary!

 

 

Note:

  1. 輸出的最後必須要有一個換行符號 ('\n')
  2. 輸出部分需在mapMove() 中實作

Sample Input  Download

Sample Output  Download

Partial Judge Code

14869.c

Partial Judge Header

14869.h

Tags




Discuss