
Правила игры:
Поле 9 на 9. Шарики шести цветов. За один ход можно переместить один шарик с одного места на другое. Шарик можно перемещать только на свободные клетки, двигаясь вверх/вниз/влево/вправо. Линии из 5 и более шариков исчезают, а игрок получает дополнительный ход. После каждого хода в случайных местах появляются три новых шарика.
Цель игры — продержаться как можно дольше, собрать как можно больше линий. Подсчёт очков не регламентирован, есть разные варианты.
Ссылки на он-лайн версию игры и на архив с шариками добавлены ниже в описании урока.
Игра будет написана за 5 видеоуроков:
Вступление + подготовка.
Анализ игры + интерфейс.
Создание логики игры + реализация.
Алгоритм поиска пути + анимация перемещения.
Алгоритм поиска линий из 5 шариков + завершение.
И ещё три урока для переноса игры на смартфон:
Рефакторинг кода и выделение DLL библиотеки
Создание интерфейса пользователя в Unity
Запуск игры на iPhone и Android.
Самостоятельное задание:
Поиграть немножко в игру шарики на https://lines98.ru
Составить блок схему состояний игры.
Подготовить 3 комплекта по 6 шариков: обычные, большие, маленькие.
Подготовить картинки: пустое поле и "путь" шарика.
Нарисовать *от руки* схему состояний игры.
Сделать фото нарисованной схемы.
Сделать скриншот папки с 20-ю картинками.
Анализ игры и динамическое создание поля из картинок.
Самостоятельное задание:
Импортировать картинку в ресурсы программы.
Создать две матрицы для картинок (box) и для поля (map).
Разместить компонент Panel и PictureBox.
Написать функцию CreateBoxes для динамического размещения PictureBox на панели.
Создать обработчик кликов по картинкам и привязать его.
Создать функцию ShowItem для отображения элементов.
На этом уроке мы реализуем логику программы. Вся логика программы реализуется в отдельном классе. Сделаем так, чтобы программа отрабатывала все состояния. Шарики можно будет выбирать, перемещать, будут появляться следующие шарики.
Самостоятельное задание:
Создать класс Game.
Перенести из основной программы нужное в этот класс.
Функцию отображения оформить делегатом и передать в класс.
Создать тип Status с перечислением всех режимов игры.
Создать метод Step для обработки логики программы.
Реализовать метод SelectNextBalls.
Запустить программу, убедиться, что всё работает.
Реализовать метод ShowNextBalls.
Добавить функцию ClickBox и вызывать её из формы.
Реализовать метод JumpBall.
Реализовать метод MoveBall.
Протестировать работу программы.
Реализация самого сложного алгоритма: поиск кратчайшего пути для перемещения шарика.
Самостоятельное задание:
Написать функцию FindPath.
Написать функцию PathShow.
Разместить вызов этих функций в нужных местах.
Протестировать отображение пути и процесс перемещения шарика.
Реализация последнего алгоритма. Поиск линий из 5 и более шариков и анимация их удаления.
Самостоятельное задание:
Написать функцию FindStripLine.
Написать функцию StripLines.
Написать функцию IsMapFull.
Разместить вызов этих функций в нужных местах.
Протестировать работу программы.
Добавить что-нибудь своё в программу.
Записать видео-обзор созданной игры. Какой курс ты будешь проходить следующим?
Самостоятельное задание:
Записать видео обзор программы и выложить на Youtube.
Какой курс ты будешь проходить следующим?
В VIP-части курса мы займёмся переносом Шариков на мобильные платформы с помощью технологии Unity.
Наша цель — повторно использовать код логики игры. Для этого мы займёмся его рефакторингом и выделением в отдельную независимую библиотеку.
Самостоятельное задание:
Отрефакторить код.
Выделить код логики в отдельный проект на основе .NET 3.5.
Скомпилировать класс логики в DLL-библиотеку.
На этом уроке мы расчехлим Unity Personal и создадим в нём интерфейс пользователя для игры в Шарики. Затем подключим созданную библиотеку — и, о чудо, игра сразу заработает!
Самостоятельное задание:
Создать интерфейс пользователя в Unity.
Подключить библиотеку и запустить всё вместе.
Тестировать игру и поиграть в нее.
На этом уроке мы запустим игру на планшете Android и мобильном телефоне iPhone.
Самостоятельное задание:
Посмотреть вебинар.
* Запустить игру на Android.
* Запустить игру на iPhone.
На этом курсе мы создадим игровую программу "Шарики" на Си шарпе и портируем её на смартфон.
Цель игры - составить как можно больше линий из 5 шариков одинакового цвета.
На игровом поле появляются шарики разных цветов. Игроку нужно расставлять их таким образом, чтобы по горизонтали, диагонали или вертикали образовывались цепочки из пяти и более одинаковых шаров. Такая одноцветная группа исчезает с поля. Имейте в виду, что шарик не сможет пройти на выбранную позицию в случае, если путь туда закрыт другими.
После прохождения курса у вас будет полноценная игра на компьютере и смартфоне.
Используемые технологии и алгоритмы:
+ анализ игры и составление блок-схемы
+ динамическое размещение рисунков на экране
+ алгоритм поиска «вширь» для прокладывания пути
+ алгоритм поиска линий из 5+ шариков одного цвета
+ выделение логики игры в DLL библиотеку
+ запуск игры на смартфоне iPhone и Android
На игровом поле появляются шарики разных цветов. Игроку нужно расставлять их таким образом, чтобы по горизонтали, диагонали или вертикали образовывались цепочки из пяти и более одинаковых шаров. Такая одноцветная группа исчезает с поля. Имейте в виду, что шарик не сможет пройти на выбранную позицию в случае, если путь туда закрыт другими.
На игровом поле появляются шарики разных цветов. Игроку нужно расставлять их таким образом, чтобы по горизонтали, диагонали или вертикали образовывались цепочки из пяти и более одинаковых шаров. Такая одноцветная группа исчезает с поля. Имейте в виду, что шарик не сможет пройти на выбранную позицию в случае, если путь туда закрыт другими.
После прохождения курса у вас будет полноценная игра на компьютере и смартфоне.