Я видел, что подобный вопрос задавался здесь много раз, я пытался использовать их, но не мог понять, как это должно работать в моем случае.Пожалуйста, помогите мне разобраться, как решить эту проблему.
Итак, у меня есть чтение по сетке лабиринта 6 x 6 из текстового файла, и я хочу найти кратчайший путь от начала до конца, который я нашел в Интернетеэто должно быть сделано с использованием алгоритма BFS, однако IDK, как реализовать это.Вот мой код.
class Program
{
static char dottozero(char a)
{
a = 'O';
return a;
}
static void Main(string[] args)
{
char[,] Tablero = new char[6, 6];
string[] lines = File.ReadAllLines("maze.txt");
for (int i = 0; i < lines.Length; i++)
{
for (int j = 0; j < lines[i].Length; j++)
{
Tablero[i, j] = lines[i][j];
if ((int)Tablero[i, j] == (int)'.' || (int)Tablero[i, j] == (int)'B' ||
(int)Tablero[i, j] == (int)'E')
{
Tablero[i, j] = dottozero(Tablero[i, j]);
}
Console.Write(Tablero[i, j]);
}
Console.WriteLine();
}
Console.ReadLine();
}
}
И мой лабиринт выглядит так: «X» - это стены, точки - это свободная дорога, «B» - это начальная точка, а «E» - конечная точка
Bxxxxx
.....x
x.xx.x
x....x
x.xxxx
x....E
пройденный путь должен быть напечатан как O вместо точек, поэтому я, если bfs является правильным алгоритмом для моего случая, вывод должен быть таким?
Oxxxxx
OO...x
xOxx.x
xO...x
xOxxxx
xOOOOO