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

Формула программиста
основатель — Волосатов Евгений Витольдович
Олимпиада по средам
Перейти к решению задачи

Микроигры / 2048 - Логика

  • На этом уроке мы реализуем класс с логикой игры.
    Далее напишем функции для смещения клеток и для их объединения.
    Ещё раз сыграем, чтобы протестировать созданную программу.
  • Дата отправки отчёта: 26 декабря 2015 г.
  • Задание выполнено: за 2 час. 30 мин.
  • Чему научился: Вспомнил рекурсию.
  • Что было сложным: Рекурсия была самой сложной... сама по себе не сложная, а вот додуматься до этого!!
  • Комментарии: КРУТО!!

    P.S.
    Жаль не сделали чтобы можно было размер менять)))
  • Видеозапись: http://youtu.be/IWDeDTh1VYw
  • Оценка видео-уроку:
Отчёт от 1901 за Микроигры / 2048 - Логика


Отчёт от 1901 за Микроигры / 2048 - Логика




Оцени работу

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

1901. Neverwinter 2
Neverwinter 2
ответить
→  Иван  # Микроигры / 2048 - Логика / 2015-12-30 19:32

Написать какой-нибудь код - это универсальное средство сделать что-нибудь)))


2146. Иван
Иван
ответить
→  Neverwinter 2  # Микроигры / 2048 - Логика / 2015-12-27 11:42

Размеры изменять - попробуй сделать сам. Для этого в событиях формы надо выбрать Resize и написать какой-нибудь код.


  • Отчёт оценивали:
    459Сергей Сергеевич+1   1Евгений Волосатов+1   5649Максим Лапшинов+1   4853Alexander Sidorov+1   7645Александр Львович+1   6925Артём+1   6458Илья+1   8Василевская Елена0   6391Владимир+1   3664данила+1   4004Елена+1   6509Степан Фендьо+1   2912Игорь+1   8005Александр+1   8407Наталья+1   7276Ильшат+1   7448Sergey Shumskiy+1   7980Сергей Лузум+1   2146Иван+1   5219Nromik+1   4732Sergey+1  

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




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

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

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

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