Обучение языку c#

Формула программиста

основатель — Волосатов Евгений Витольдович
Open shop Карточки памяти

Карточки памяти

Создание популярной игры для развития памяти с 16 карточками.

Карточки памяти

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

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Подготовка формы 00:28:24
1 тест
237 чел. ★ 4.9 Done
  Мы напишем игру «Карточки памяти».
На форме 16 карточек из 8 парных картинок.
Цель игры - попарно открыть все карточки.

Задание:
Подготовить картинки, настроить форму, сделать меню.
Разместить сетку, написать правила игры и сводку об авторе.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: ничему новому 
Сложности: ничего 
Комментарии: Отличный урок, как всегда всё ясно и понятно. Добавил в эту игру всё тех-же героев Dizzy, которых уже видели в игре "Скорость Реакции", подготовил в фотошопе все необходимые текстуры, подготовил форму, переходим ко второй части =) 
2 Отображение карточек 00:29:01
1 тест
208 чел. ★ 4.9 Done
  На этом уроке мы сначала нарисуем блок-схему алгоритма игры,
а потом сделаем отображение и перемешивание карточек.
Отчёт отправил: 10558. Иван Воронин Выполнено за 8 час. 00 мин. [Показать отчёт]
Научился: подключать mp3 файлы, повторение старого 
Сложности: найти кадры ко всем персонажам (для троих пришлось запускать игры Dizzy на эмуляторе, чтобы найти новые кадры для анимации) 
Комментарии: разработана уникальная иконка для формы и банарника (как обычно в фотошопе) так же был создан в фотошопе игровой фон, стилизованный под ZX Spectrum подготовлены в одинаковом стиле текстуры персонажей и створок для окошек добавлен счётчик времени прохождения игры (начало подсчёта после первого клика) добавлен счётчик количества кликов до окончания игры (в конце отображается статистика времени и кликов) добавлена анимация открывания шторок, за которыми виднеется персонаж добавлены звуки открывания/закрывания шторок добавлены мелодии: до начала игра (первый клик),  Правила игры, О игре, Победа и Дискотека перед сбросом и началом новой игровой сессии добавлена анимация персонажей, если удалось найти двойника (радуются этому) из-за добавления анимации шторок, выявился баг, который был устранён шторки открываются асинхронно, т.е. можно не ждать завершения анимации, кликать с любой скоростью по шторкам звуковые файлы решил не добавлять в ресурсы бинарника, создал отдельную папку data и конвертировал их в форма mp3, чтобы меньше занимали места =) название status мне тоже не очень понравилось, согласен с Магистром, поэтому переименовал в phase в пункт меню Игра был добавлен новый пункт Звук, с его помощью можно включать/выключать звуковые эффекты (индикатор Галочка если звук есть) и ещё куча недокументированных правок =) з.ы. нагляднее в видео 
Видеообзор: https://youtu.be/x_QaXgVfZeM
3 Алгоритм игры 00:26:50
66 чел. ★ 4.9 Done
  У нас всё готово для программирования.
На этом уроке мы напишем основной алгоритм.
Будем использовать блок-схему состояний с прошлого урока.
Отчёт отправил: 10558. Иван Воронин Выполнено за 29 мин. [Показать отчёт]
Научился: Так как реализовал эту игру ещё летом 2016, а по текущему курсу это зафиксировано в прошлом уроке, то прикрепляю видео отчёт о проделанной работе. з.ы. подробное описание доработок в прошлом уроке. 
Сложности: найти время 
Видеообзор: x_QaXgVfZeM
4 Независимый класс 00:19:44
53 чел. ★ 4.9 Done
  На этом уроке мы приступим к рефакторингу для выделения логики игры в отдельный, независимый класс.
Мы определим в новом классе два публичных метода, а также создадим интерфейс IPlayable,
который поможет нам вызывать методы из внешнего класса,  не нарушая независимости.
Отчёт отправил: 10558. Иван Воронин Выполнено за 44 мин. [Показать отчёт]
Научился: Так как я реализовал игрушку по своему с кучей доработок, то у меня индексы клеток от 0 до 15 и при клике по правой-нижней клетке появляется окно победы и играет музыка =) Всё отлично, идём дальше. 
Сложности: найти время 
5 Классовая независимость 00:10:03
51 чел. ★ 5 Done
  На этом уроке мы перенесём все методы и поля,
которые относятся к логике игры, в независимый
и самодостаточный класс LogicMemory.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 3 мин. [Показать отчёт]
Научился: Перенести логику не составило труда, вначале это сделал, потом досмотрел видео. Оптимизировал создание новой игры, теперь закрывают только те окошки, которые в момент создания новой игры были открыты. Изза того, что у меня реализована анимация открывания/закрывания шторок, то пришлось устранить слишком раннюю замену перемешанных картинок, чтобы в момент закрывания шторок не подглядеть кто где в новой игре =) Поддержка звуковых эффектов осталась не перенесённой. Поддержку анимации перенёс в класс логики. Реализовал необходимые геттеры/сеттеры для получения информации о игровой статистике. Всё отлично, идём дальше. 
Сложности: найти время 
6 Класс в Библиотеке 00:06:18
47 чел. ★ 5 Done
  На этом уроке мы вынесем класс LogicMemory с интерфейсом в отдельный проект для создания библиотеки.
Не забудьте дать публичный доступ классу и интерфейсу, а также добавить Reference на добавленный проект.
Отчёт отправил: 10558. Иван Воронин Выполнено за 21 мин. [Показать отчёт]
Научился: Так как уже подобное реализовывал сам, то и данный урок выполнил самостоятельно, потом посмотрел, как видно из скриншота, библиотека в данном случае автоматически копируется рядом с бинарником игры и именно оттуда и берётся референс, а не с папки проекта самой библиотеки. И второе уточнение, версия библиотеки не обязательно должна быть такой же как и версия приложения/игры, но она должна быть не выше, т.е. я сделал версию библиотеки 3.5, а версию игры оставил 4.5 и всё работает отлично. Это логично, так как проект, который использует новую версию или туже, он понимает свои версии и ниже, а проект к которому подключена более современная библиотека, он не понимает что с ней делать. 
Сложности: найти время 
7 Персональные картинки 00:02:33
43 чел. ★ 4.8 Done
  Мы начинаем создание карточек памяти для мобильных платформ: Android + iPhone.
В этом нам поможет технология Unity. Скачайте и установите Unity Personal,
а также найдите 9 *квадратных* картинок по вашей любимой тематике.
Убедитесь, что у вас есть файл MemoryLibrary.dll из прошлого урока.
Отчёт отправил: 10558. Иван Воронин Выполнено за 12 мин. [Показать отчёт]
Научился: Такс, новые 4 урока, отлично, движемся. з.ы. Новые картинки не хочу, хочу Диззи =) 
Сложности: найти время 
8 Запуск Unity с картинками 00:06:20
1 тест
42 чел. ★ 4.9 Done
  На этом уроке мы познакомимся с интерфейсом Unity.
Разместим в Assets подготовленные картинки и добавим их на сцену.
Запустим, порадуемся результату и морально подготовимся к следующему уроку.
Отчёт отправил: 10558. Иван Воронин Выполнено за 13 мин. [Показать отчёт]
Научился: Всё отлично, идём дальше. 
Сложности: найти время 
9 Авоська картинок 00:08:08
1 тест
39 чел. ★ 4.9 Done
  На этом уроке мы разместим 16 кнопок в панель, с натройкой Grid Layout.
Поэкспериментируйте и напишите, что у вас получилось.
Отчёт отправил: 10558. Иван Воронин Выполнено за 31 мин. [Показать отчёт]
Научился: Эксперименты штука хорошая. Грид использовать не стал, хотя идея интересная, но решил реализовать поддержку любых разрешений экрана и отображение поля через канвас со спрайтами. Использовал так же кнопки, но для другой задачи, реализую систему анимации через них =) Так же реализовал автоматическую подгонку игрового поля во весь экран без изменения пропорций игрового поля. 
Сложности: найти время 
10 Горизонтальное и Вертикальное 00:09:11
1 тест
39 чел. ★ 5 Done
  На этом уроке мы разместим панели внутри панели.
Будем использовать горизонтальное и вертикальное выравнивание.
В результате все 16 кнопок будут автоматически менять размеры под экран устройства.
Отчёт отправил: 10558. Иван Воронин Выполнено за 12 мин. [Показать отчёт]
Научился: Так как это всё проделал ещё на прошлом уроке, то просто просмотрел видео. Идея интересная, но так как я реализовал по своему, а именно, чтобы поле и картинки сохраняли свои пропорции, то на свою реализацию у меня ушло несколько минут. 
Сложности: найти время 
11 Открытие по щелчку 00:15:36
2 теста
39 чел. ★ 4.9 Done
  На этом уроке мы создадим скрипт, в котором будет метод обработки нажатия по картинке.
Во второй части урока мы реализуем отображение выбранной картинки на кнопке.
Отчёт отправил: 10558. Иван Воронин Выполнено за 18 мин. [Показать отчёт]
Научился: Реализовал при клике по кнопкам, отображение картинок за шторками и цикличность анимации шторок. Не переносил необходимые картинки на пол за пределами камеры, реализовал это через префабы, удобная штука. Реализовал загрузку всех текстур картинок и кадров анимации шторок во время запуска игры. Всё отлично, идём дальше. 
Сложности: найти время 
12 Неуловимая птичка 00:15:50
38 чел. ★ 4.9 Done
  На этом уроке мы подключим библиотеку к нашему проекту и запустим игру.
Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 51 мин. [Показать отчёт]
Научился: Перенёс свои наработки, адаптировал их под реалии Юньки, всё отлично работает. Музыку, звуки и т.д. фишки пока не стал реализовывать, а то появятся новые уроки и будет нечем заняться. По поводу видео у меня произошло дежавю, так как уже аналогичные телодвижения с подключением dll в проект на Юньке делали в недавнем курсе по "Онлайн шахматам" и я уже высказал своё мнение по этому поводу, поэтому могу лишь добавить, что у меня проблем не возникло как и в прошлый раз, заняло это пару кликов. Жду дальнейшие уроки по украшательствам, чтобы внедрить идеи и реализовать поддержку звуковых эффектов. 
Сложности: найти время 
Видеообзор: PUmJlXyw4Tc
13 ФИНАЛЬНЫЙ УРОК без видео
19 чел. ★ 5 Done
  Запишите видеообзор полученных программ.
Отчёт отправил: 10558. Иван Воронин Выполнено за 41 мин. [Показать отчёт]
Научился: Так же случайно заметил, что в данном курсе добавили пункт: "Финальный урок" и из-за этого курс стал не пройденным полностью =) Решил исправить это досадное недоразумение. На видео продемонстрировал три версии: Windows, WebGL и Android. Кто хочет поиграть в данную демо-версию, можете это сделать по данному адресу: http://dizzy-memory.jgp.su/ Отличный курс и портирование на Юньку его только улучшило. 
Сложности: найти время 
Видеообзор: FI_-MKxUhKk
14 VIP-загрузка на Android 00:08:43
23 чел. ★ 4.9 Done
  На этом уроке формулист VIP расскажет, как запустить игру на Android.
Отчёт отправил: 10558. Иван Воронин Выполнено за 21 мин. [Показать отчёт]
Научился: Доработал поддержку любых разрешений экрана устройств без нарушения пропорций объектов игры. Реализовал поддержку звуковых эффектов и музыкального сопровождения. Протестировал на всех доступных разрешениях в самой Юньке и на своём планшете, см. видео. Проблем с которыми столкнулись в видео не возникало, кроме поддержки прозрачности в некоторых файлах, но это можно отдельно подправить именно для Android устройств, выбрав необходимый формат перекодирования графики. 
Сложности: найти время 
Видеообзор: SNb7DZM0PhA
  Итого:   14 видеоуроков 3 час. 06 мин.
7 тестов
14 чел. ★ 4.93  
  Финалисты:   Иван Воронин,   Snepper,   Александр Балбашов,   vip,   Кирилл,   Айдар,   Дмитрий,   Артём Нагорный,   no name,   Permitin Alexey,   ES35,   MaxB,   Tim,   Tom .

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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.


Научился: В этом курсе создал игру "Карточки памяти". Получил много практики в работе с интерфейсом программы, научился создавать библиотеку и использовать ее в новом проекте. Результаты работы можно посмотреть по адресу http://tomfoxweb.rf.gd/memorycards/



Научился: Благодарю за урок. Продолжаем развивать ютуб канал "Маленький программист" - https://www.youtube.com/channel/UCWZ7scvu0mbOHmnG9Z6FkEQ. Здесь мои дети выкладываю программы, которые решают самостоятельно.