Description
请写一个算法,给出从迷宫的指定起点到终点的最短走法。
具体请实现名为solveMaze的函数,ADT为:
void solveMaze(Maze p):
前置条件:没有
输入:迷宫p
功用:找到并打印从迷宫的指定起点到终点的最短走法。打印格式参照Output。
输出:没有。
后置条件:没有
迷宫Maze类别的ADT如下:
Maze():造一个新的迷宫。(在本题应该用不上)
bool isAtGoal():测试现在位置是否为终点。
Pos curPos(): 回传现在位置。
bool canMoveUp():从现在位置能否向上走。
bool canMoveDown():从现在位置能否向下走。
bool canMoveLeft():从现在位置能否向左走。
bool canMoveRight():从现在位置能否向右走。
void moveLeft():从现在位置向左走。如果走不了,就不动。
void moveRight():从现在位置向右走。如果走不了,就不动。
void moveUp():从现在位置向上走。如果走不了,就不动。
void moveDown():从现在位置向下走。如果走不了,就不动。
void printLayout():打印这个迷宫。
Input
没有
Output
走到终点的方法。每一行一个指令,可以是: "Down", "Up", "Left", "Right" 中的任何一个。无论是否最后一个指令,都在指令后换行。
比如上例来说(红色为起点,蓝色为终点),就是:
Down
Down
Down
Right
Right
Right
Up