Создание популярной игры для развития памяти с 16 карточками.
Карточки памяти# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
Мы напишем игру «Карточки памяти». На форме 16 карточек из 8 парных картинок. Цель игры - попарно открыть все карточки. Задание: Подготовить картинки, настроить форму, сделать меню. Разместить сетку, написать правила игры и сводку об авторе. Отчёт отправил: 20302. Дмитрий Выполнено за 19 час. 1 мин. [Показать отчёт] Научился: Узнал, как создавать меню Сложности: Пока без затруднений |
|||||
2 | Отображение карточек |
1 тест |
|||
На этом уроке мы сначала нарисуем блок-схему алгоритма игры, а потом сделаем отображение и перемешивание карточек. Отчёт отправил: 20302. Дмитрий Выполнено за 3 час. 18 мин. [Показать отчёт] Научился: А если бы PictureBox-ов было не 16, а более сотни? Гигантский столбец создавать как-то не рационально по-моему. Да, а почему обмен всегда через доп переменную? есть же xor: cards[a] ^= cards[b]; cards[b] ^= cards[a]; cards[a] ^= cards[b]; Сложности: вроде ничего сильно сложного, вот только момент с getPictureBox напрягает |
|||||
3 | Алгоритм игры |
|
|||
У нас всё готово для программирования. На этом уроке мы напишем основной алгоритм. Будем использовать блок-схему состояний с прошлого урока. Отчёт отправил: 20302. Дмитрий Выполнено за 3 час. 34 мин. [Показать отчёт] Научился: Продолжаю развиваться в WinForms Сложности: Получилось довольно запутанно, громоздко. Уверен, можно как-то компактнее. |
|||||
4 | Независимый класс |
|
|||
На этом уроке мы приступим к рефакторингу для выделения логики игры в отдельный, независимый класс. Мы определим в новом классе два публичных метода, а также создадим интерфейс IPlayable, который поможет нам вызывать методы из внешнего класса, не нарушая независимости. Отчёт отправил: 20302. Дмитрий Выполнено за 1 день 22 час. 39 мин. [Показать отчёт] Научился: Немного захватили ООП. Не рановато ли? это ж еще 1 уровень. Сложности: Смотрел видео 2 раза, пытаясь все понять, некоторые вещи остались поняты не на должном уровне. Вот эти две строки, пожалуй, требуют более подробного объяснения logic = new LogicMem(this); // что происходит здесь? IPlayable play; //и здесь тоже |
|||||
5 | Классовая независимость |
|
|||
На этом уроке мы перенесём все методы и поля, которые относятся к логике игры, в независимый и самодостаточный класс LogicMemory. Отчёт отправил: 20302. Дмитрий Выполнено за 33 мин. [Показать отчёт] Научился: Понемногу двигаюсь вперед.. Сложности: Сложностей не возникло. |
|||||
6 | Класс в Библиотеке |
|
|||
На этом уроке мы вынесем класс LogicMemory с интерфейсом в отдельный проект для создания библиотеки. Не забудьте дать публичный доступ классу и интерфейсу, а также добавить Reference на добавленный проект. Отчёт отправил: 20302. Дмитрий Выполнено за 34 мин. [Показать отчёт] Научился: Повторил то, что когда-то делал (создание библиотеки) Сложности: Без проблем |
|||||
7 | Персональные картинки |
|
|||
Мы начинаем создание карточек памяти для мобильных платформ: Android + iPhone. В этом нам поможет технология Unity. Скачайте и установите Unity Personal, а также найдите 9 *квадратных* картинок по вашей любимой тематике. Убедитесь, что у вас есть файл MemoryLibrary.dll из прошлого урока. Отчёт отправил: 20302. Дмитрий Выполнено за 1 час. 3 мин. [Показать отчёт] Научился: Unity установлена давно, как раз ждала своего часа) Сложности: без проблем, повозился немного с приведением картинок в квадратную форму |
|||||
8 | Запуск Unity с картинками |
1 тест |
|||
На этом уроке мы познакомимся с интерфейсом Unity. Разместим в Assets подготовленные картинки и добавим их на сцену. Запустим, порадуемся результату и морально подготовимся к следующему уроку. Отчёт отправил: 20302. Дмитрий Выполнено за 1 час. 28 мин. [Показать отчёт] Научился: При добавлении ресурсов они добавляются в папку с проектом Сложности: Nothing.. |
|||||
9 | Авоська картинок |
1 тест |
|||
На этом уроке мы разместим 16 кнопок в панель, с натройкой Grid Layout. Поэкспериментируйте и напишите, что у вас получилось. Отчёт отправил: 20302. Дмитрий Выполнено за 41 мин. [Показать отчёт] Научился: немного поработал с panel. Сложности: не сразу нашел, где менять размер кнопок |
|||||
10 | Горизонтальное и Вертикальное |
1 тест |
|||
На этом уроке мы разместим панели внутри панели. Будем использовать горизонтальное и вертикальное выравнивание. В результате все 16 кнопок будут автоматически менять размеры под экран устройства. Отчёт отправил: 20302. Дмитрий Выполнено за 19 мин. [Показать отчёт] Научился: Теперь немного оcвоил Layout Group Сложности: - |
|||||
11 | Открытие по щелчку |
2 теста |
|||
На этом уроке мы создадим скрипт, в котором будет метод обработки нажатия по картинке. Во второй части урока мы реализуем отображение выбранной картинки на кнопке. Отчёт отправил: 20302. Дмитрий Выполнено за 20 час. 55 мин. [Показать отчёт] Научился: Прикручивать скрипт к объекту. Сложности: Почему-то слетел скрипт, долго не мог понять, отчего не работает. button.GetComponent<Image>().sprite = picture.GetComponent<SpriteRenderer>().sprite; Вот эту строку бы подробнее, не люблю, когда что-то используется, а как работает непонятно. Почему <Image> именно? у метода есть свойство sprite? |
|||||
12 | Неуловимая птичка |
|
|||
На этом уроке мы подключим библиотеку к нашему проекту и запустим игру.
Отчёт отправил: 20302. Дмитрий Выполнено за 53 мин. [Показать отчёт] Научился: Не думал, что последняя Юнити работает с фреймворком 3.5. Там Юнити еще добавляет свои платформы - на 2м слайде показал. Я пересобирал на фреймворке просто 3.5. Сложности: У меня проблемы с добавлением ссылки не возникло, но хорошо, что в уроке это есть, т.к. могли возникнуть проблемы. |
|||||
13 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Запишите видеообзор полученных программ.
Отчёт отправил: 20302. Дмитрий Выполнено за 43 мин. [Показать отчёт] Научился: Тренировался делать видео обзор Сложности: сформулировать все четко и ясно Видеообзор: rI6KpwFbl7w |
|||||
14 | VIP-загрузка на Android |
|
|||
На этом уроке формулист 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 чел. | |||
Финалисты: Иван Воронин, Snepper, Александр Балбашов, vip, Кирилл, Айдар, Дмитрий, Артём Нагорный, no name, Permitin Alexey, ES35, MaxB, Tim, Tom . |