2016-12-21 13 views
-3
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

Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям по отправке в справочной документации. [Минимальный, полный, проверяемый пример] (http://stackoverflow.com/help/mcve) применим здесь. Мы не можем эффективно помочь вам, пока вы не разместите свой код (который вы сделали, а не минимально) и точно опишите проблему. Включите все сообщение об ошибке - особенно обратную трассировку (показывающую конкретную строку сбоя). – Prune

+2

Смотрите этот прекрасный [debug] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) блог для справки. Среди прочего, начните с вставки печати или двух, которые будут отслеживать значения ** X_Pos ** и ** Y_Pos **. – Prune

+0

Какая строка вашего кода выдает индекс из связанного исключения? Трудно пройти весь код. Быть конкретной. – Prabu

ответ

-2

Для получения этой ошибки вы должны были объявить maze_board[] как переменную вне этого метода. Вместо этого передайте maze_board в этот метод как параметр, чтобы вы были уверены, что он инициализирован и удерживает текущий лабиринт. Это догадка в этот момент, потому что я не вижу оригинального объявления переменной maze_board. Можете ли вы опубликовать весь файл кода?

+0

Голосов здесь удивительны - ОП имеет переменную в методе, который не объявляется в предоставленном коде. Чтобы получить ошибку вне диапазона (и для компиляции кода), должно быть объявлено более широкое объявление для maze_board, которое здесь не показано - вероятно, как статический член (что, по-видимому,) класс программы для консольное приложение. Это запутанно, потому что оно также объявлено в основном методе. –

+1

'Голоса здесь удивляют? Почему? SO не является службой отладки кода. Прочитайте комментарии под вопросом .... –

+0

Я признаю, что это не служба отладки, и поэтому я получаю пустые голоса по этому вопросу, но это упражнение по обучению для OP, которое делает это как практическое, так и почему не работает проблема. –

 Смежные вопросы

  • Нет связанных вопросов^_^