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

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

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

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

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

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

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

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

Задание:
Подготовить картинки, настроить форму, сделать меню.
Разместить сетку, написать правила игры и сводку об авторе.
Отчёт отправил: 20302. Дмитрий Выполнено за 19 час. 1 мин. [Показать отчёт]
Научился: Узнал, как создавать меню 
Сложности: Пока без затруднений 
2 Отображение карточек 00:29:01
1 тест
208 чел. ★ 4.9 Done
  На этом уроке мы сначала нарисуем блок-схему алгоритма игры,
а потом сделаем отображение и перемешивание карточек.
Отчёт отправил: 20302. Дмитрий Выполнено за 3 час. 18 мин. [Показать отчёт]
Научился: А если бы PictureBox-ов было не 16, а более сотни? Гигантский столбец создавать как-то не рационально по-моему. Да, а почему обмен всегда через доп переменную? есть же xor: cards[a] ^= cards[b]; cards[b] ^= cards[a]; cards[a] ^= cards[b]; 
Сложности: вроде ничего сильно сложного, вот только момент с getPictureBox напрягает 
3 Алгоритм игры 00:26:50
66 чел. ★ 4.9 Done
  У нас всё готово для программирования.
На этом уроке мы напишем основной алгоритм.
Будем использовать блок-схему состояний с прошлого урока.
Отчёт отправил: 20302. Дмитрий Выполнено за 3 час. 34 мин. [Показать отчёт]
Научился: Продолжаю развиваться в WinForms 
Сложности: Получилось довольно запутанно, громоздко. Уверен, можно как-то компактнее. 
4 Независимый класс 00:19:44
53 чел. ★ 4.9 Done
  На этом уроке мы приступим к рефакторингу для выделения логики игры в отдельный, независимый класс.
Мы определим в новом классе два публичных метода, а также создадим интерфейс IPlayable,
который поможет нам вызывать методы из внешнего класса,  не нарушая независимости.
Отчёт отправил: 20302. Дмитрий Выполнено за 1 день 22 час. 39 мин. [Показать отчёт]
Научился: Немного захватили ООП. Не рановато ли? это ж еще 1 уровень. 
Сложности: Смотрел видео 2 раза, пытаясь все понять, некоторые вещи остались поняты не на должном уровне. Вот эти две строки, пожалуй, требуют более подробного объяснения logic = new LogicMem(this); // что происходит здесь? IPlayable play; //и здесь тоже 
5 Классовая независимость 00:10:03
51 чел. ★ 5 Done
  На этом уроке мы перенесём все методы и поля,
которые относятся к логике игры, в независимый
и самодостаточный класс LogicMemory.
Отчёт отправил: 20302. Дмитрий Выполнено за 33 мин. [Показать отчёт]
Научился: Понемногу двигаюсь вперед.. 
Сложности: Сложностей не возникло. 
6 Класс в Библиотеке 00:06:18
47 чел. ★ 5 Done
  На этом уроке мы вынесем класс LogicMemory с интерфейсом в отдельный проект для создания библиотеки.
Не забудьте дать публичный доступ классу и интерфейсу, а также добавить Reference на добавленный проект.
Отчёт отправил: 20302. Дмитрий Выполнено за 34 мин. [Показать отчёт]
Научился: Повторил то, что когда-то делал (создание библиотеки) 
Сложности: Без проблем 
7 Персональные картинки 00:02:33
43 чел. ★ 4.8 Done
  Мы начинаем создание карточек памяти для мобильных платформ: Android + iPhone.
В этом нам поможет технология Unity. Скачайте и установите Unity Personal,
а также найдите 9 *квадратных* картинок по вашей любимой тематике.
Убедитесь, что у вас есть файл MemoryLibrary.dll из прошлого урока.
Отчёт отправил: 20302. Дмитрий Выполнено за 1 час. 3 мин. [Показать отчёт]
Научился: Unity установлена давно, как раз ждала своего часа) 
Сложности: без проблем, повозился немного с приведением картинок в квадратную форму 
8 Запуск Unity с картинками 00:06:20
1 тест
42 чел. ★ 4.9 Done
  На этом уроке мы познакомимся с интерфейсом Unity.
Разместим в Assets подготовленные картинки и добавим их на сцену.
Запустим, порадуемся результату и морально подготовимся к следующему уроку.
Отчёт отправил: 20302. Дмитрий Выполнено за 1 час. 28 мин. [Показать отчёт]
Научился: При добавлении ресурсов они добавляются в папку с проектом 
Сложности: Nothing.. 
9 Авоська картинок 00:08:08
1 тест
39 чел. ★ 4.9 Done
  На этом уроке мы разместим 16 кнопок в панель, с натройкой Grid Layout.
Поэкспериментируйте и напишите, что у вас получилось.
Отчёт отправил: 20302. Дмитрий Выполнено за 41 мин. [Показать отчёт]
Научился: немного поработал с panel. 
Сложности: не сразу нашел, где менять размер кнопок 
10 Горизонтальное и Вертикальное 00:09:11
1 тест
39 чел. ★ 5 Done
  На этом уроке мы разместим панели внутри панели.
Будем использовать горизонтальное и вертикальное выравнивание.
В результате все 16 кнопок будут автоматически менять размеры под экран устройства.
Отчёт отправил: 20302. Дмитрий Выполнено за 19 мин. [Показать отчёт]
Научился: Теперь немного оcвоил Layout Group 
Сложности: - 
11 Открытие по щелчку 00:15:36
2 теста
39 чел. ★ 4.9 Done
  На этом уроке мы создадим скрипт, в котором будет метод обработки нажатия по картинке.
Во второй части урока мы реализуем отображение выбранной картинки на кнопке.
Отчёт отправил: 20302. Дмитрий Выполнено за 20 час. 55 мин. [Показать отчёт]
Научился: Прикручивать скрипт к объекту. 
Сложности: Почему-то слетел скрипт, долго не мог понять, отчего не работает. button.GetComponent<Image>().sprite = picture.GetComponent<SpriteRenderer>().sprite; Вот эту строку бы подробнее, не люблю, когда что-то используется, а как работает непонятно. Почему <Image> именно? у метода есть свойство sprite?  
12 Неуловимая птичка 00:15:50
38 чел. ★ 4.9 Done
  На этом уроке мы подключим библиотеку к нашему проекту и запустим игру.
Отчёт отправил: 20302. Дмитрий Выполнено за 53 мин. [Показать отчёт]
Научился: Не думал, что последняя Юнити работает с фреймворком 3.5. Там Юнити еще добавляет свои платформы - на 2м слайде показал. Я пересобирал на фреймворке просто 3.5. 
Сложности: У меня проблемы с добавлением ссылки не возникло, но хорошо, что в уроке это есть, т.к. могли возникнуть проблемы.  
13 ФИНАЛЬНЫЙ УРОК без видео
19 чел. ★ 5 Done
  Запишите видеообзор полученных программ.
Отчёт отправил: 20302. Дмитрий Выполнено за 43 мин. [Показать отчёт]
Научился: Тренировался делать видео обзор 
Сложности: сформулировать все четко и ясно 
Видеообзор: rI6KpwFbl7w
14 VIP-загрузка на Android 00:08:43
23 чел. ★ 4.9 Done
  На этом уроке формулист VIP расскажет, как запустить игру на Android.
Отчёт отправил: 20302. Дмитрий Выполнено за 1 день 3 час. 51 мин. [Показать отчёт]
Научился: Решать проблемы разного характера. Настроил Unity под загрузку на андроид. Хороший урок, но не хватает некоторых нюансов. 
Сложности: 1. Ошибки при компиляции. Решились переименовать папку с проектами с русского на английский, а также обновлением Java и доустановкой нужных версий Android SDK. 2. Предупреждение: "Compressed texture ava is used as icon. This might compromise visual quality of the final image. Uncompressed format might be considered as better import option. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)" Пока не решил, работает так. Но хотелось бы знать что это и почему. Полагаю со сжатием картинок что-то не то. 3. При запуске установки на телефоне выдавал надпись "не установлено". Решилось запуском установщика из проводника (но не из приложения мэйл.ру) 4. При запуске приложения не открывались картинки - рубашка картинок вроде как выделялась. но сами картинки не показывались. Решилось перекомпиляцией с настройкой под экран смартфона. У меня 1920x1080 Landscape, 
  Итого:   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. Здесь мои дети выкладываю программы, которые решают самостоятельно.