我不断得到一个索引超出界限错误,不知道为什么

时间:2016-12-21 18:22:00

标签: c# arrays recursion char bounds

    public bool Solve_Maze(int X_Pos, int Y_Pos)
    {
        bool Move = false;

        //Checking if the position isnt on the finish
        if (maze_board[X_Pos,Y_Pos] == 'e')
        {
            Move = true;
            maze_board[X_Pos,Y_Pos] = '+';
            return Move;
        }

        // Check for a wall
        if (maze_board[X_Pos, Y_Pos] == '1')
            return false;

        if (maze_board[X_Pos, Y_Pos] == 'X')
            return false;

        maze_board[X_Pos, Y_Pos] = 'X';

        Move = Solve_Maze(X_Pos + 1, Y_Pos);
        Move = Solve_Maze(X_Pos, Y_Pos + 1);
        Move = Solve_Maze(X_Pos - 1, Y_Pos);
        Move = Solve_Maze(X_Pos, Y_Pos - 1);

        maze_board[X_Pos, Y_Pos] = '+';

        return Move;

    }

这是给我错误的代码

    if (maze_board[X_Pos,Y_Pos] == 'e')

在编程方面,我是一个完整的新手,并且在大学任务中被抛入深层,所以任何帮助都会非常感激

1 个答案:

答案 0 :(得分:-2)

为了获得该错误,您必须已将maze_board[]声明为该方法之外的变量。相反,将maze_board作为参数传递给此方法,以便您确定它已初始化并保持当前的迷宫。这是一个猜测,因为我看不到maze_board变量的原始声明。你可以发布整个代码文件吗?