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

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

Игра Сокобан / Сокобан - Решалка - Мышка

  • Мы начинаем решать задачу по решению игры Сокобан с одним ящиком.
    Эта задача олимпиадного уровня на применение алгоритма поиска вширь.
    Главный герой - мышка Альфа, которая желает затолкать яблочко к себе в норку.
    Программу мы напишем за два урока.
    На первом уроке мы создадим вспомогательную функцию MoveAlfa(),
    которая подскажет мышке как попасть из одной клетки лабиринта в другую кратчайшим путём.
  • Дата отправки отчёта: 31 августа 2015 г.
  • Задание выполнено: за 1 час. 25 мин.
  • Чему научился: Познакомился с алгоритмом поиска в ширину.
    Работать с очередями и списками.
  • Что было сложным: Когда алгоритм понимаешь, тогда ничего сложного нет.
  • Комментарии: Очень хороший урок, очень важный алгоритм искусственного интеллекта, который можно применять в играх.
    Спасибо!
  • Оценка видео-уроку:
Отчёт от 6391 за Игра Сокобан / Сокобан - Решалка - Мышка




Оцени работу

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

24. Оля
Оля
ответить
→  Владимир  # Игра Сокобан / Сокобан - Решалка - Мышка / 2015-08-31 14:01

Владимир, шикарные знания приобрел, алгоритм действительно потрясающий, я уверена ты его еще оценишь! Лично просто балдею когда мой герой бегает сам и перетаскивает ящик туда куда я сказала! ☀️


  • Отчёт оценивали:
    24Оля+1   7178Олег+1  

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




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

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

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

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