651

Пятнашки и А*

Навеяно постом Собеседование vs первый рабочий день и комментами к нему.

Ходил на курсы С++ для общего развития. Работа с программированием никак не связана, но мечтал с юности об этом деле, а возможности небыло. Подрос немного до 30+, начал нормально зарабатывать и решил воплощать мечту. Был самый старший в группе, годиков на десять от всех.
Так вот. На курсах была задачка написать игру Пятнашки с примитивным интерфейсом. Из функционала - только клик по квадратикам с цифрами, их перемещение и распознавание победной комбинации.

Пятнашки и А*

Преподаватель решил немного нас подзадорить и сказал, кто напишет автосборку из случайной раскладки, того САМ лично за руку поведёт на собеседование. Описал он эту задачу, как не воплотимую для таких простых как мы.

Вобщем-то, зацепил за живое.
Не боги же горшки лепят, подумал я. И погряз на 2 месяца в изучение темы и написание кода. Информации в интернете было очень мало. Можно сказать и небыло вовсе. Пример кода посмотреть не у кого было. На каком то сайте нашёл чью то работу с олимпиады, где математичесски оценивались разные варианты применения разных алгоритмов для решения этой задачи. Вот тут то я и познакомился с А* )))
Что бы понять его на интуитивном уровне ушло ещё недели две. Но когда пазл в голове сложился в чёткую картинку я почувствовал настоящую эйфорию. Код просто рекой полился. Автосборка была написана!
Я был больше чем просто рад, я кайфовал ежесекундно!

На очередном занятии показал результат преподавателю. Тот открыл ехешник, посмотрел на интерфейс и сказал, что сейчас покажет как это должно выглядеть. Открыл чей то проект, бесспорно визуально более красивый, и начал хвалить его автора - бывшего своего студента. Рассказывал какой он был распрекрасный чувак и как много добился на сегодня. Я попросил запустить автосборку чужого проекта. С рандомной раскладки решение было найдено за 140 с чем то ходов. И тут я понял, что его вариант находит не самый короткий верный путь, а просто первый попавшийся верный, на что, собственно я и указал, попросив запустить эту же раскладку в моём варианте. Моя програма дошла до финиша за 40 с чем то ходов. Я был так горд собой, что это отчётливо читалось на моём лице. Но преподаватель не поверил. Попросил оставить исходники, что бы он всё перепроверил. Так и проверяет до сих пор. А мне по человечески было реально обидно, что он не сдержал слово и не предложил идти на собеседование. Я бы отказался, так как работа у меня нормальная, хоть и не в IT, но за державу обидно.
Доверие к себе он подорвал ровно в тот момент не только у меня, но и у всей группы.

А в А* я остался влюблён на всю жизнь )))

Лига программистов

2.3K постов12K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

Вы смотрите срез комментариев. Показать все
32
Автор поста оценил этот комментарий
А что такое А* ?
раскрыть ветку (7)
25
Автор поста оценил этот комментарий

Алгоритм поиска кратчайшего пути по вершинам графа. Применяется много где, например в играх, чтобы NPC могли бегать и обходить препятствия.

раскрыть ветку (6)
10
Автор поста оценил этот комментарий
Спасибо.

Если кому будет нужен, описание тут: https://ru.m.wikipedia.org/wiki/A*
1
Автор поста оценил этот комментарий
Дейкстра что-ли?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Да, по сути это расширение алгоритма Дейкстры
1
Автор поста оценил этот комментарий
Насколько я понял, построение маршрутов в навигаторах происходит так же с применением этого алгоритма.
раскрыть ветку (2)
2
DELETED
Автор поста оценил этот комментарий

Только ещё он строится через ключевые точки или схожую систему с неполной загрузкой графов, просто граф крупного города имеет ебейшую сложность и постоянный перерасчёт может повесить мозги дешёвого смарта намертво (компам/ноутам в среднем насрать). Читал на Хабре вроде про поиск пути из Италии в Румынию - там применяли ключевые точки и блочную подгрузку.

1
Автор поста оценил этот комментарий
Видел диплом с применением этого алгоритма для построения маршрута в такси.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества