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

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

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

  • На этом уроке мы реализуем класс с логикой игры.
    Далее напишем функции для смещения клеток и для их объединения.
    Ещё раз сыграем, чтобы протестировать созданную программу.
  • Дата отправки отчёта: 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, которая строится в зависимости от size, так же у меня у окна можно менять размер и с ним таблица тоже его меняет, только не могу понять почему у меня ничего не тормозит.
Научился: Повышать скорость работы программы. И рекурсия. Хотя здесь как раз быстро смекнул что к чему:)))))))
Трудности: Наверное рекурсия.
Наконец-то я доделал это приложение! Подробности ниже!))) 1. Добавил статистику игры в виде таблицы рекордов. За формирование таблицы рекордов отвечает отдельный класс "Statistics". В нем инкапсулирована вся работа с таблицей. При сохранении таблицы я использовал сериализацию и десериализацию. Это неимоверно удобно и выливается в итоге в меньший объем кода, чем при использовании System.IO c той же целью. Данный класс является моим первым шаблоном, который очень удобно интегрировать в любое приложение, требующее какой-то подобной статистики. 2. Добавил какой-никакой интерфейс игры - поле для ввода имени игрока, поле отображение текущего счета игры и кнопку рестарта игры. Данные текстБоксы как раз и используются при сохранении игры в таблицу рекордов. 3. Добавил вероятность появления цифр на игровое поле - где-то в описании игры в интернете вычитал, что цифры появляются не с равной вероятностью (да и сам замечал подобное при игре на смартфоне): 2-ка с вероятностью 80%-ами, 4-ка же с оставшимися 20%-ами. 4. Добавил "диалог" между программой и игроком при завершении игры с вопросами о сохранении игры и о создании новой игры. 5. Добавил кнопку рестарта игры. Я очень рад своим доделкам/переделкам. Именно так повышается скилл программирования - когда ты сам находишь решения своим же идеям:)))