На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

Визуализация работы алгоритма A* на C#

Задание

Необходимо разработать визуализация алгоритма A* с возможностью задания нескольких типов местности, стен и задания рандомного количества стен и автогенерацией местности. Визуализировать пошаговый алгоритм работы программы.

Функционал программы

Например:

  • Визуализация алгоритма
  • Задние стен
  • Задание различных типов местности
  • Автоматическая генерация стен
  • Автоматическая генерация случайной местности
  • Пошаговая визуализация работы программы

Пример программного кода

public List<Point> FindPath(int[][] field, Point start, Point goal)
        {
            // Шаг 1.
            var closedSet = new Collection<PathNode>();
            var openSet = new Collection<PathNode>();
            // Шаг 2.
            PathNode startNode = new PathNode()
            {
                Position = start,
                CameFrom = null,
                PathLengthFromStart = 0,
                HeuristicEstimatePathLength = GetHeuristicPathLength(start, goal)
            };
            openSet.Add(startNode);
            while (openSet.Count > 0)
            {
                // Шаг 3.
                var currentNode = openSet.OrderBy(node =>
                  node.EstimateFullPathLength).First();
                // Шаг 4.
                if (currentNode.Position == goal)
                    return GetPathForNode(currentNode);
                // Шаг 5.
                openSet.Remove(currentNode);
                closedSet.Add(currentNode);
                // Шаг 6.
                foreach (var neighbourNode in GetNeighbours(currentNode, goal, field))
                {
                    // Шаг 7.
                    if (closedSet.Count(node => node.Position == neighbourNode.Position) > 0)
                        continue;
                    var openNode = openSet.FirstOrDefault(node =>
                      node.Position == neighbourNode.Position);
                    // Шаг 8.
                    if (openNode == null)
                        openSet.Add(neighbourNode);
                    else
                      if (openNode.PathLengthFromStart > neighbourNode.PathLengthFromStart)
                    {
                        // Шаг 9.
                        openNode.CameFrom = currentNode;
                        openNode.PathLengthFromStart = neighbourNode.PathLengthFromStart;
                    }
                }
            }
            // Шаг 10.
            return null;
        }

Пояснения по запуску

Программа не нуждается в установке. Просто необходимо запустить VizualizationA.sln

Скриншот архива с проектом

Купить 5000,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Купить

5000,00 

Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

VizualizationA.rar
5590734
Оцени работу

рейтинг

Визуализация работы алгоритма A* на C#
Визуализация работы алгоритма A*. Программа разработана на языке C#. Пользовательский интерфейс: WPF. В программе существует возможность задания нескольких типов местности и стен.
Категория: Образование
Стоимость: 5000,00