如何使用BFS在6x6网格迷宫C#中找到最短路径

时间:2018-05-14 21:25:57

标签: c# text-files breadth-first-search maze

我已经在这里多次询问了类似的问题,我试图使用它们,但无法理解它在我的情况下应该如何工作。请帮我弄清楚如何解决这个问题。

所以我从文本文件中读取了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

1 个答案:

答案 0 :(得分:0)

您的代码没有dfs。它所做的就是将所有字符替换为xo,以便您对给定输入所期望的输出是

  

[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]