我被要求用 C++ 制作迷宫游戏(使用代码块)。我想出了大部分,但停留在迷宫类的一种方法中。我有这个功能可以说在你没有得到墙壁的任何方向(上、下、左、右)上行驶。
int Maze::mazeTraversal(int a, int b)
{
// If a,b is outside maze, return false.
if ( a < 0 || a > MCOLS - 1 || b < 0 || b > NROWS - 1 ) return FALSE;
// If a,b is the goal, return true.
if ( maze[b][a] == 'G' ) return TRUE;
// If a,b is not open, return false.
if ( maze[b][a] != '0' && maze[b][a] != 'S' ) return FALSE;
// Mark a,b part of solution path.
maze[b][a] = 'x';
// If find_path North of a,b is true, return true.
if ( mazeTraversal(a, b - 1) == TRUE ) return TRUE;
// If find_path East of a,b is true, return true.
if ( mazeTraversal(a + 1, b) == TRUE ) return TRUE;
// If find_path South of a,b is true, return true.
if ( mazeTraversal(a, b + 1) == TRUE ) return TRUE;
// If find_path West of a,b is true, return true.
if ( mazeTraversal(a - 1, b) == TRUE ) return TRUE;
// Unmark a,b as part of solution path.
maze[b][a] = '0';
return FALSE;
}
我将此函数称为:
Maze mo(maze,12); //creating maze game with 12/12 array
mo. mazeTraversal(0,2) // because the entry point is in 0,2 position of the game.
我刚刚意识到我被要求将这个 mazeTraversal 设置为void
. 没有任何回报。我的心在爆炸。请排除一些创造性的想法。