Курсы обучения программированию

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

Шарики - 5 в ряд

Серия уроков по созданию известной игры «Шарики» или Lines.
Цель игры - составить как можно  больше линий из 5 шариков одинакового цвета.

После прохождения курса у вас будет полноценная игра.
Используемые технологии и алгоритмы:
+ анализ игры и составление блок-схемы
+ динамическое размещение рисунков на экране
+ алгоритм поиска «вширь» для прокладывания пути
+ алгоритм поиска линий из 5+ шариков одного цвета

Объём курса: 5 уроков.

Хочу купить!

Купить в рассрочку за мегахеши

Цена: 800 p.


Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Шарики. Вступление 00:12:27 114 чел. ★ 4.9 Done
  Правила игры
Поле 9 на 9.
Шарики шести цветов.
За один ход можно переместить один шарик с одного места на другое.
Шарик можно перемещать только на свободные клетки, двигаясь вверх/вниз/влево/вправо.
Линии из 5+ шариков исчезают, а игрок получает доп. ход.
После каждого хода в случайных местах появляются три новых шарика.
Цель игры — продержаться как можно дольше, собрать как можно больше линий.
Подсчёт очков не регламентирован, есть разные варианты.

Отчёт отправил: 2773. Никита Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Немного помучился с рисованием шариков. Я не художник, так что сделал все картинки шариков в Paint'е) 
Сложности: Придумать, где бы взять картинки шариков. В интернете ничего не смог найти путного. Потом искал редактор для рисования, остановился все-таки на стандартном - Paint'e. 
Комментарии: Отличная получилась схема-состояний. По ней будет намного проще писать код программы. Думаю, написание игры будет увлекательным занятием)  
2 Шарики. Анализ игры 00:39:03 104 чел. ★ 5 Done
  Анализ игры и динамическое создание поля из картинок.
Отчёт отправил: 2773. Никита Выполнено за 1 час. 20 мин. [Показать отчёт]
Научился: Для меня нового особого ничего не было. Я повторил пройденный ранее материал и укрепил свои знания. Все-таки, теперь я более-менее понимаю слова Евгения Витольдовича: "количество перейдет в качество". Мы и раньше на других видеокурсах создавали элементы динамически, я плохо понимал, как все это работает. Просто переписывал код. Сейчас уже намного лучше, понимание потихоньку приходит. Конечно, я уже пробую создавать эти динамические элементы не первый раз. 
Сложности: Ничего сложного, все понятно. Хороший урок получился. Потом, я думаю, сделаем рефакторинг) 
Комментарии: Все отлично. Попробовал записать анимацию этих шариков, не знаю получилось ли (так как формат же gif, а поддерживает ли этот сайт гифки, я не знаю). Вот и узнаем) ***Не получилось загрузить анимацию, поэтому выкладываю ссылку на нее. (в описании увидите)*** p.s. Еще у меня при отображении шариков, иногда проскакивают серые клетки. То ли я что-то намудрил в коде, то ли еще что-то... Если кто догадался, напишите, пожалуйста, в чем может быть проблема. Вот небольшой участок кода (я делал это по таймеру): ShowItem(nr1, nr2, 0, color); // 0 - это номер первого элемента в перечислении, по сути это пустая картинка (none); nr1 = random.Next(max); // генерация чисел (max - это размер поля (8*8) nr2 = random.Next(max); color = random.Next(7); nr4 = random.Next(1, 4); // это номер элемента в перечислении Item // это так, просто для отображения разных видов шарика (прыгающий, просто шарик и т.п.) сделано. switch (nr4) { case 1: ShowItem(nr1, nr2, (Item)nr4, color); break; case 2: ShowItem(nr1, nr2, (Item)nr4, color); break; case 3: ShowItem(nr1, nr2, (Item)nr4, color); break; } и сам Enum: private enum Item { none, // нумерация как раз с 0 начинается по умолч. ball, // просто шарик jump, // прыгающий шарик hint, // маленькие шарики path //путь перемещения шарика }  
Видеообзор: http://prntscr.com/bhh48c
3 Шарики. Логика игры 01:12:08 90 чел. ★ 4.9 Done
  На этом уроке мы реализуем логику программы.
Вся логика программы реализуется в отдельном классе.
Сделаем, чтобы программа отрабатывала все состояния.
Шарики можно будет выбирать, пермещать,
будут появляться следущие шарики.
Отчёт отправил: 2773. Никита Выполнено за 2 час. 30 мин. [Показать отчёт]
Научился: Управлять шариками) Конечно сложновато с логикой игры, но в целом понятно. 
Сложности: С логикой разобраться.  
Комментарии: Я 5 раз перепровил код, но все равно не нашел ошибки. У меня при перемещении шарика, последний пропадает. То есть я выбираю шарик, кликаю на пустое место (клетку) и все. Шарик как бы "ушел". Но на панели не прорисовывается. А если выбрать это пустое место, то шарик там отобразится. Я так ошибку и не смог исправить. Класс Game точно такой же, как у Евгения Витольдовича. Может быть с классом формы что-то не так. 
4 Шарики. Поиск пути 00:41:19 83 чел. ★ 5 Done
  Реализация самого сложного алгоритма:
поиск кратчайшего пути для перемещения шарика.

Отчёт отправил: 2773. Никита Выполнено за 2 час. 20 мин. [Показать отчёт]
Научился: Реализовал алгоритм поиска кратчайшего расстояния. 
Сложности: Сама реализация алгоритма. Честно говоря, мало что понял в коде, на бумаге понятно как работает алгоритм. А программно - нет. Придет время, я думаю, и я буду разбираться) Да, самое сложное уже позади!) 
Комментарии: Все отлично!) 
5 Шарики. Поиск линий 00:33:37 68 чел. ★ 5 Done
  Реализация последнего алгоритма.
Поиск линий из 5+ шариков и анимация их удаления.
Отчёт отправил: 2773. Никита Выполнено за 2 час. 30 мин. [Показать отчёт]
Научился: Реализовали убирание шариков одного цвета при построении их в ряд. 
Сложности: Логика программы пока дается с трудом, но я думаю, что со временем придет понимание. 
Комментарии: Отличный урок!) Есть куда совершенствоваться, можно многое добавить. Я добавил отображение счета игры. 
6 ФИНАЛЬНЫЙ УРОК 00:23:23 45 чел. ★ 5 Done
  Записать видеообзор созданной игры.

Какой курс ты будешь проходить следующим?
Отчёт отправил: 2773. Никита Выполнено за 40 мин. [Показать отчёт]
Научился: Еще одно видео в коллекции) 
Сложности: Ничего сложного) 
Комментарии: Все отлично) Пароль к архиву: www.videosharp.info 
Видеообзор: https://youtu.be/xK_OUk5EiR4
7 VIP. Рефакторинг Библиотеки 00:32:55 10 чел. ★ 5 Done
  На VIP-части курса мы займёмся переносом Шариков
на мобильные платформы с помощью технологии Unity.
Наша цель - повторно использовать код логики игры.
Для этого мы займёмся его рефакторингом
и выделением в отдельную независимую библиотеку.

Отчёт отправил: 2773. Никита Выполнено за 1 час. 31 мин. [Показать отчёт]
Научился: Выделили логику отдельно в библиотеку dll. Пока для меня ничего нового не было. 
Сложности: Долго не получалось добавить эту dll (новый сформированный проект) к старому. Потом до меня дошло, что новый проект я создал с версией .NET Framework 4.7, а в старый был в версии 4.5, поэтому и ничего не хотело вместе стыковаться. Но ничего, все заработало в конце концов.  
8 VIP. Интерфейс пользователя на Unity 00:57:41 3 чел. ★ 5 Open
  На этом уроке мы расчехлим Unity Personal и
создадим в нём интерфейс пользователя для игры в Шарики.
Затем подключим созданную библиотеку - и, о чудо! игра сразу заработает!
9 VIP. Запуск игры на iPhone и Android 00:42:57 1 чел. ★ 5 $
  На этом уроке мы запустим игру на планшете Android и мобильном телефоне iPhone.
  Итого:   9 видеоуроков общей продолжительностью 5 час. 55 мин. 1 чел. ★ 4.98  
  Финалисты:   chokayes .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Слушать музыку через микрофон и записывать звук через наушники.
Хорошая идея делать видео обзоры. Очень надеюсь, что я успел вовремя финишировать :)
Научился: Завершено создание программы "Шарики", написанной еще более года назад.
Трудности: В первые 2 года на Проекте я не умел и не любил писать финальные видеообзоры, поэтому большинство курсов (Шарики, Сокобан, Морской бой, Теория ООП) были формально не пройдены (90-99%). Постепенно буду перепроходить курсы и закрывать хвосты.