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

Формула программиста
основатель — Волосатов Евгений Витольдович
Большой Новогодний подарок от Игромистра
Безденежный доступ к видеокурсам за Мегахеши

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

  • На этом уроке мы реализуем класс с логикой игры.
    Далее, напишем заглушки для функций смещения клеток
    и функцию проверки окончания игры game_over().
  • Дата отправки отчёта: 5 июля 2015 г.
  • Задание выполнено: за 3 час. 00 мин.
  • Чему научился: Сдвигать элементы массива.
  • Что было сложным: Самое сложно в данном проекте это методы combine и shift
  • Комментарии: С помощью класса  GraphicsPath сделал закругление углов в Label. Также добавил текущий счет и рекорд. Рекорд сохраняется в настройках программы (Properties.Settings.Default.Save();).
  • Оценка видео-уроку:
Отчёт от 3400 за Микроигры / 2048 - Смещение




Оцени работу

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

8322. ironsavior
ironsavior
ответить
→  deltamc  # Микроигры / 2048 - Логика / 2016-02-17 20:49

класс!!!! а можете код с закруглением лейблов скинуть ?


1. Евгений Волосатов
Евгений Волосатов
ответить
→  deltamc  # Микроигры / 2048 - Логика / 2015-07-05 20:18

Молодец, отличная работа!


  • Отчёт оценивали:
    8322ironsavior+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: использовать рекурсию
Трудности: переписать логику игры
Мне сразу не понравилось разделение передвижения плашек и их объединения. У меня изначально был другой алгоритм в голове, который я и реализовал. Если при движении влево по уроку мы шли справа налево, то я же шел слева направо. Мне так показалось логичнее. Полный алгоритм можно увидеть на скриншоте. Не претендую на оптимальность, но хотя бы не вызываются лишний раз функции перемещения (как мне кажется). Перерисовка tableLayoutPanel происходила очень долго (Изначально думал, что это у меня комп слабый). Оказалось, что это из-за свойства CellBorderStyle. Когда поставил его в положение None, игра просто полетела. Остаточное моргание формы частично решал еще в Сокобане. Перед вызовом функции логики убирал видимость tableLayoutPanel, а после всех передвижений, возвращал обратно. Осталось одно общее мигание всех лейблов на долю секунды, но оно решилось установкой свойства DoubleBuffered. Визуально больше ничего не моргает. В игру от себя добавил подсчет очков (по правилам с википедии). А также возможность возврата на 1 шаг назад (сохранение предыдущего состояния матрицы map, и перерисовка значений в лейблах по ней).
Научился: Вспомнил парочку вещей из прошлых курсов.
Хорошие, качественные курсы!