С Новым годом! Форум программистов, компьютерный форум, киберфорум Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
10 / 10 / 6
Регистрация: 27.07.2014
Сообщений: 269
1

Лабиринт

08.12.2016, 19:46. Показов 1590. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Может есть у кого нибудь на lisp готовый вариант лабиринта:

поиск всех возможных путей
или
поиск кратчайшего пути

или сможете помочь реализовать ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2016, 19:46
Ответы с готовыми решениями:

Игра лабиринт. ИИ в лабиринте. Как задать лабиринт
У меня есть следующее задание: Дано: - робот - лабиринт Задание: - Нужно реализовать...

Лабиринт C++
я написал код лабиринта на c++, с помощью чего можно найти кратчайший путь выхода из лабиринта?...

Лабиринт
вот у меня картинка ездит по экрану с помощью управления стрелок.а как сделать , что бы она не...

Лабиринт
Всем доброго времени суток! Необходимо создать лабиринт, где 0 - путь по которому можно идти, 1 -...

2
3 / 3 / 1
Регистрация: 23.03.2016
Сообщений: 20
09.12.2016, 09:08 2
Лучший ответ Сообщение было отмечено _sg как решение

Решение

AVATAR,
LispВыделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(defun shortest-path (start end net)
  (bfs end (list (list start)) net))
(defun bfs (end queue net)
  (if (null queue)
      nil
      (let ((path (car queue)))
        (let ((node (car path)))
          (if (eql node end)
              (reverse path)
              (bfs end
                   (append (cdr queue)
                           (new-paths path node net))
                   net))))))
(defun new-paths (path node net)
  (mapcar #'(lambda (n)
              (cons n path))
          (cdr (assoc node net))))
Работает это дело так. Сначала создаём сеть. Например, так:
LispВыделить код
1
(setf min '((a b c) (b c) (c d)))
Тут надо бы граф нарисовать, но мне лень Короче, тут из узла A можно попасть в узлы B и C, из узла B можно попасть в узел C, а из узла C можно попасть в узел D.
Ну, а дальше с помощью shortest-path ищем кратчайший путь, например, от A к D.
Делаем вот так:
LispВыделить код
1
(shotest-path 'a 'd min)
И получаем результат:
То есть, кратчайший путь от A к D в созданной нами сети состоит из двух шагов A -> C -> D.

P.S: Пример этот я взял из книги ANSI Common Lisp, автор Пол Грэм. Конкретнее - это в третьей главе, раздел 3.15. Почитайте, там немного написано, и всё довольно понятно разъясняется.
3
10 / 10 / 6
Регистрация: 27.07.2014
Сообщений: 269
11.12.2016, 09:20  [ТС] 3
Спасибо
0
11.12.2016, 09:20
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2016, 09:20
Помогаю со студенческими работами здесь

Лабиринт
Напишите небольшой текстовый квест. Пользователю сообщается, что его персонаж находится в комнате,...

лабиринт
Здравствуйте есть лабиринт, нужно чтобы количество шагов по лабиринту было ограничено до 9 и...

Лабиринт
Что нужно сделать чтобы достичь выхода

Лабиринт на C#
Вообщем надо написать игру лабиринт на C# . Игры до этого не писал . Знаю что для начала нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как программировать под HCL Notes и создавать свои продукты на ее основе
InfoMaster 11.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой мощную платформу для разработки корпоративных приложений, которая сочетает в себе функции электронной почты, календаря,. . .
Как работать с SVN (Subversion)
InfoMaster 11.01.2025
Введение Система контроля версий является неотъемлемой частью современного процесса разработки программного обеспечения. Она обеспечивает управление изменениями в коде, позволяет отслеживать. . .
Использование GraphQL в JavaScript
InfoMaster 11.01.2025
Введение в GraphQL и его преимущества В современной разработке веб-приложений эффективный обмен данными между клиентом и сервером играет ключевую роль. GraphQL представляет собой язык запросов и. . .
Администрирован­­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru