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

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Микроигры / 2048 - Смещение

  • На этом уроке мы реализуем класс с логикой игры.
    Далее, напишем заглушки для функций смещения клеток
    и функцию проверки окончания игры game_over().
  • Дата отправки отчёта: 16 мая 2017 г.
  • Задание выполнено: за 2 час. 15 мин.
  • Чему научился: использовать рекурсию
  • Что было сложным: переписать логику игры
  • Комментарии: Мне сразу не понравилось разделение передвижения плашек и их объединения. У меня изначально был другой алгоритм в голове, который я и реализовал. Если при движении влево по уроку мы шли справа налево, то я же шел слева направо. Мне так показалось логичнее. Полный алгоритм можно увидеть на скриншоте. Не претендую на оптимальность, но хотя бы не вызываются лишний раз функции перемещения (как мне кажется).

    Перерисовка tableLayoutPanel происходила очень долго (Изначально думал, что это у меня комп слабый). Оказалось, что это из-за свойства CellBorderStyle. Когда поставил его в положение None, игра просто полетела. Остаточное моргание формы частично решал еще в Сокобане. Перед вызовом функции логики убирал видимость tableLayoutPanel, а после всех передвижений, возвращал обратно. Осталось одно общее мигание всех лейблов на долю секунды, но оно решилось установкой свойства DoubleBuffered. Визуально больше ничего не моргает.

    В игру от себя добавил подсчет очков (по правилам с википедии). А также возможность возврата на 1 шаг назад (сохранение предыдущего состояния матрицы map, и перерисовка значений в лейблах по ней).
  • Оценка видео-уроку:
Отчёт от 1947 за Микроигры / 2048 - Смещение




Оцени работу

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

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Denis  # Микроигры / 2048 - Логика / 2017-05-17 15:44

Прекрасные доработки!



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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

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


Научился: Повторил работу с макросами, генерацией случайных чисел.
Трудности: Разобраться в рекурсивных функциях.
В позапрошлом отчете в комментарии я написал "математично", а в этом напишу "алгоритмично":D Снимаю шляпу, красивое решение с помощью рекурсивных функций shift и combine :)


Научился: Изучил логику игры 2048.
Трудности: Набрать очки в собственноручно запрограммированной игре.
Урок очень интересный и познавательный, а вот сама игра начала раздражать. Я даже сообщение с победой добавлять не стал: это игра на проигрыш.