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

Формула программиста
основатель — Волосатов Евгений Витольдович

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

  • На этом уроке мы реализуем класс с логикой игры.
    Далее напишем функции для смещения клеток и для их объединения.
    Ещё раз сыграем, чтобы протестировать созданную программу.
  • Дата отправки отчёта: 12 октября 2015 г.
  • Задание выполнено: за 3 час. 30 мин.
  • Чему научился: Рекурсии
  • Что было сложным: функция shift 
    функция combine
    рекурсия
  • Комментарии: Отличный урок , спасибо!
  • Оценка видео-уроку:
Отчёт от 6885 за Микроигры / 2048 - Логика




Оцени работу

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

24. Оля
Оля
ответить
→  lomik  # Микроигры / 2048 - Логика / 2015-10-12 10:34

Виктор, классные знания получил, и рада что справился не смотря не небольшие сложности! Молодец! :)


  • Отчёт оценивали:
    6885lomik+1   6458Илья+1   1232Фомичева Наталья+1   6452Lik_Kirill+1   4004Елена+1   1947Denis+1   1Евгений Витольдович+1   5565Frank+1   7443Серега+1   6987MichGar+1   24Оля+1   6971avelkor+1   459Сергей Сергеевич+1   6758Роман Осипов+1   7303Игорь+1   4395Денис+1   429Максим Базуев+1   5026Екатерина+1   3747Сергей+1   6391Владимир+1  

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




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

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

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

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