Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович
Вступай в Телеграм чат проекта

Шарики / Шарики. Поиск пути

  • Реализация самого сложного алгоритма:
    поиск кратчайшего пути для перемещения шарика.
  • Дата отправки отчёта: 9 июля 2015 г.
  • Задание выполнено: за 1 час. 30 мин.
  • Чему научился: Закрепила волновой алгоритм. Научилась анимировать перемещение шарика.
  • Что было сложным: Найти, где забыла выделить память под массивы.
  • Комментарии: Просмотрела, где в уроке выделяется память под массив path. Кстати, давно мучаюсь вопросом: как у C# дело обстоит с освобождением выделенной памяти?
  • Оценка видео-уроку:
Отчёт от 4004 за Шарики / Шарики. Поиск пути




Оцени работу

 
Сохранить страницу:

1. Евгений Волосатов
Евгений Волосатов
ответить
→  Елена  # Микроигры / Шарики. Поиск пути / 2015-07-09 19:28

Хороший вопрос, я недавно изучал его, и ответ достаточно забавный.
Запускается собиратель мусора. Причём, никто не знает, когда он будет запущен.
Как-нибудь на вебинаре поговорим об этом.


24. Олюшка
Олюшка
ответить
→  Елена  # Микроигры / Шарики. Поиск пути / 2015-07-09 17:33

Елена, как превосходно, в прочем как обычно! :)



Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Либо я где-то по невнимательности упустил что-то, либо если выбираться то один то другой шарик(random) может получиться, что выбранный переместится на место второго. Кто-нибудь похожее встречал ?


Научился: Научился использовать алгоритм "Волна" для нахождения кратчайшего пути для перемещения шарика.
Трудности: Увы, не все было понятно. Пока довольно сложно для меня. В середине ошибся в написании одного условия. Пришлось много времени потратить на поиск ошибки.
Хотел бы поделиться с курсантами записью алгоритм "Волна " в псевдокоде (взял из Википедии). Может быть, это кому-то поможет лучше понять этот алгоритм. Инициализация Пометить стартовую ячейку 0 d := 0 Распространение волны ЦИКЛ ДЛЯ каждой ячейки loc, помеченной числом d пометить все соседние свободные непомеченные ячейки числом d + 1 КЦ d := d + 1 ПОКА (финишная ячейка не помечена) И (есть возможность распространения волны) Восстановление пути ЕСЛИ финишная ячейка помечена ТО перейти в финишную ячейку ЦИКЛ выбрать среди соседних ячейку, помеченную числом на 1 меньше числа в текущей ячейке перейти в выбранную ячейку и добавить её к пути ПОКА текущая ячейка — не стартовая ВОЗВРАТ путь найден ИНАЧЕ ВОЗВРАТ путь не найден