В настоящее время я учусь в одной ИТ-академии, и я получил довольно большую домашнюю работу, так или иначе, мне не удалось найти логику для написания кода для этой задачи, поэтому в основном мне нужны некоторые руководства, а не весь код!:)
У меня есть двумерный массив символов, который будет представлять собой лабиринт.Допустим, массив равен 8x8, и я привожу здесь пример, чтобы вы могли лучше рассмотреть:
char[][] maze = {'#','#','#',' ','#','#','#','#',},
{'#',' ','#',' ','#',' ',' ','#',},
{'#',' ','#',' ','#',' ',' ','#',},
{' ',' ',' ','$','#','#',' ',' ',},
{'#',' ','#',' ',' ',' ',' ','#',},
{'#',' ','#','#','#',' ',' ','#',},
{'#',' ',' ',' ',' ',' ',' ','#',},
{'#','#','#','#','#','#',' ','#',}};
Как вы можете видеть, он в основном строится на #, где стены и пробелы являются 4 выходами,$ наш герой, который должен сбежать.Поэтому я должен написать код, который при печати этого лабиринта просит пользователя ввести U, R, L, D, и мой $ должен двигаться соответственно, но если есть стена, она не должна двигаться.Я сделал это до сих пор.Что в основном спрашивает о направлении и печатает лабиринт:
while(true) {
System.out.println("Input direction:");
direction = sc.next().charAt(0);
for(int row = 0; row < maze.length; row++) {
for(int col = 0; col < maze[row].length; col++) {
System.out.print(maze[row][col] + " ")
}
}
System.out.println();
}
Проблема, с которой я столкнулся, заключается в том, что я не могу найти логику, чтобы сохранить положение моего героя после получения направления.Это должно быть что-то с переменными и меняющимися элементами массива, но я борюсь весь день, поэтому я решил спросить здесь.Если я найду, как это сделать, я почти уверен, что знаю, как сделать все остальное!:)
Внимание!Я нахожусь в стадии своего образования, что могу использовать только циклы, условия и массивы :) Так что любая помощь приветствуется!Спасибо!