Поиск Пути А* - C#

Узнай цену своей работы

Формулировка задачи:

Есть проблема, я не могу понять как сделать так чтобы начиналась поиск пути с любой точки и доходил до любой точки которую я введу, что надо сделать? у меня получается только от 0,0 до 4,4 вот код
Листинг программы
  1. int[,] CopMap = new int[5, 5];
  2. int [,] map = new int[,]{
  3. {0,0,0,0,0},
  4. {-1,0,0,0,0},
  5. {0,0,0,0,0},
  6. {0,0,0,0,0},
  7. {0,0,0,0,0},
  8. };
  9. int b = 0;
  10. for (int i = 0; i < 5; i++)
  11. {
  12. for (int j = 0; j < 5; j++)
  13. {
  14. Console.Write(map[i,j] + " ");
  15. }
  16. Console.WriteLine();
  17. }
  18. Console.WriteLine();
  19. Console.WriteLine();
  20. //////////////////////////////// волна
  21. Console.WriteLine(" obrabotanij massive");
  22. int n = -1;
  23. int p = -1;
  24. for (int i = 0; i < 5; i++)
  25. {
  26. for (int j = 0; j < 5; j++)
  27. {
  28. if (map[i, j] != -1 && map[i, j] != -3)
  29. {
  30. map[i, j] = n + 1;
  31. }
  32. n = n + 1;
  33. Console.Write(map[i, j] + "\t");
  34. }
  35. n = p + 1;
  36. p = p + 1;
  37. Console.WriteLine();
  38. }
  39. Console.WriteLine("nashol " + b);
  40. int g = 0;
  41. int d=0;
  42. int max = 0;
  43. Console.WriteLine();
  44. Console.WriteLine();
  45. ////////////////////////////////////////////////////
  46. for (int i = 0; i < 5; i++)
  47. {
  48. for (int j = 0; j < 5; j++)
  49. {
  50. if(map[i,j]!=-1)
  51. if (map[i, j] == 0)
  52. {
  53. max = map[i, j];
  54. }
  55. if (map[i,j]>max)
  56. {
  57. d = d + 1;
  58. max++;
  59. map[i, j] = 0;
  60. }
  61. Console.Write(map[i, j] + "\t");
  62. }
  63. d++;
  64. Console.WriteLine();
  65. }
  66. Console.WriteLine();

Решение задачи: «Поиск Пути А*»

textual
Листинг программы
  1. for (int i = 0; i < 5; i++)
  2.             {
  3.                 for (int j = 0; j < 5; j++)
  4.                 {
  5.                     if(map[i,j]!=-1)
  6.                     if (map[i, j] == 2)
  7.                     {
  8.                             b = b + 1;
  9.                             max = map[i,j];
  10.                     }
  11.                     if (b == 3)
  12.                     {
  13.                         if (map[i, j] > max)
  14.                         {
  15.                             d = d + 1;
  16.                             max++;
  17.                             map[i,j] = 0;
  18.                         }
  19.                        
  20.                     }
  21.                    
  22.                     Console.Write(map[i, j] + "\t");
  23.                 }
  24.            
  25.                 d++;
  26.                 Console.WriteLine();
  27.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут