Я приглашаю вас на видеокурс по созданию полноценной игровой программы СОКОБАН. Я проведу вас за руку по всем этапам создания законченной интеллектуальной игры: 1. Создание редактора уровней. 2. Придумывание этих самых уровней. 3. Создание собственно игры. 4. Решение олимпиадной задачки для добавления ИИ. 5. Переделка игры в режим "на двоих". 6. Написание класса Phone для связи двух программ по сети. 7. Создание сетевой версии игры Sokoban. Будет интересно!
Чему научился:
Научился научить комп самому искать решения.
Что было сложным:
Взял 1й попавший сайт с игрой, сходу прошел 5 лвл и встрял. Так как я немного программист решил сделать авторешалку. 6й уровень с ней и прошел. С большим количеством ящиков она думает достаточно долго, поэтому пока она думала над 7м лабиринтом, прошел еще 4.
Комментарии:
Форма не дает ввести больше 24 часов на выполнение задание, хотя я реально на нее 5 дней потратил, чистое число часов не засекал.
С ростом числа кубиков количество вариантов возрастает в геометрической прогрессии. Так если для поля 10x10 с 1 кубиком достаточно хранить 100 позиций для игрока Х 100 позиций для кубика, всего то 10 000 вариантов, то для 10 кубиков вариантов уже сильно больше: 100 * 100^10 = 100^11 = 10 000 000 000 000 000 000 000.
О, и решение для 3й олимпиадной задачи («Большая степень») пригодилось, а я то думал куда его можно применить :)
В общем, нужно разными способами по максимуму сокращать количество ненужных вариантов. Например, хранить только карты после движения кубика, а локальные, когда игрок бегает и не двигает кубики можно сбрасывать. Заранее помечать точки куда кубик ставить нельзя, а также динамически проверять тупиковые ситуации. Использовать сигнатуры для быстрого поиска среди рассмотренных позиций и т.д. и т.п. При этом вариантов все равно остается еще очень и очень много, я не могу сказать что текущая версия у меня решит любой лабиринт. Так для 6го лабиринта с сайта logic-games.spb.ru/sokoban/ (10 кубиков) ей потребовалось порядка 40 000 раз сдвинуть кубики, чтобы найти решение, на что ушло около минуты. А вот для 8го уровня (18 кубиков) не хватило и 1 000 000, быстрее получилось самому уже пройти :)
Потрясающе, вот что значит настоящий программист с подходом программиста решения задачи!!! Я в восторге и под впечатлением от твоей работа, очень стимулирует и мотивирует! Молодец! :)
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.