我已经在这里多次询问了类似的问题,我试图使用它们,但无法理解它在我的情况下应该如何工作。请帮我弄清楚如何解决这个问题。
所以我从文本文件中读取了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();
}
}
我的迷宫看起来像这样,&#39; X&#39;是墙壁,点是自由的道路,&#39; B&#39;是开始点和&#39; E&#39;端点
Bxxxxx
.....x
x.xx.x
x....x
x.xxxx
x....E
传递的方式应该打印为O而不是点,所以我如果bfs是正确的算法我的情况输出应该是这样的?
Oxxxxx
OO...x
xOxx.x
xO...x
xOxxxx
xOOOOO
答案 0 :(得分:0)
您的代码没有dfs。它所做的就是将所有字符替换为x
到o
,以便您对给定输入所期望的输出是
[o,x,x,x,x,x]
[o,o,o,o,o,x]
[x,o,x,x,o,x]
[x,o,o,o,o,x]
[x,o,x,x,x,x]
[x,o,o,o,o,o]