我试图在2D阵列8X8网格上计算所有路径,并让算法遍历网格上的所有方块并配置最短路径。
见下面的代码:
public static int Mileage(int[,] arr, int x, int y, int miles)
{
if (x < 0 || y < 0 || x > 5 || y > 5 || arr[x, y] == 2) return 99;
if (arr[x, y] == 1) return miles;
arr[x, y] = 2;
miles++;
Console.WriteLine(miles);
int want2 = Math.Min(Mileage(arr, x - 1, y, miles), Mileage(arr, x + 1, y, miles));
int want1 = Math.Min(Mileage(arr, x, y - 1, miles), Mileage(arr, x, y + 1, miles));
return Math.Min(want1, want2);
}
答案 0 :(得分:1)
测量距离的最佳方法是毕达哥拉斯定理。这就是你如何获得最短路径的方法。然后你只需要得到关闭的网格线,这样就可以在网格上应用。也许此链接可以帮助您https://betterexplained.com/articles/measure-any-distance-with-the-pythagorean-theorem/