Читай и Пиши
Информационный портал юных журналистов Челябинской области
Читай и Пиши
Информационный портал юных журналистов Челябинской области

ИТ-школа – проект сетевого взаимодействия ресурсного центра по работе с одаренными детьми МАОУ «Академический лицей» и компании «Compass Plus». Именно так говорит ее официальная группа в ВКонтакте. Если же сказать проще, в ИТ-школе проводятся занятия по программированию и работе с массивами данных, чтобы ее выпускников гарантированно взяла на работу компания «Compass Plus».

ИТ-школа – проект сетевого взаимодействия ресурсного центра по работе с одаренными детьми МАОУ «Академический лицей» и компании «Compass Plus». Именно так говорит ее официальная группа в ВКонтакте. Если же сказать проще, в ИТ-школе проводятся занятия по программированию и работе с массивами данных, чтобы ее выпускников гарантированно взяла на работу компания «Compass Plus». Там не готовят к ОГЭ и ЕГЭ, к статусным олимпиадам, там выращивают будущих высококлассных сотрудников всемирно известной компании. Однако не все обучающиеся планируют впоследствии работать на «Compass», некоторые ходят туда для саморазвития и творческого общения в кругу единомышленников.

Каждый год (или каждый курс) ученики должны делать годовой проект, чтобы представить его на ежегодной конференции. Обычно это происходило на специализированных сменах в «Уральских зорях», во время весенних каникул, но из-за пандемии в 2020- м всё отменилось. По этой же причине перенесли и итоговую конференцию: она планировалась в конце марта, а сдвинулась аж на 15 июня. К слову, именно в этот день девятиклассники получали свои аттестаты, из-за чего очередь выступающих многократно изменялась.

Но, несмотря на неожиданности, все смогли выступить. И выступления эти не были похожи на традиционные защиты НОУ, поскольку не нужно было раскрывать актуальность, перечислять задачи и тому подобное, важно было показать самые сильные стороны своей работы. Большинство проектов, которые были представлены на конференции, являлись играми. И это вполне закономерно, мое поколение ими очень увлечено с самого детства. Для нас игры не только прекрасное развлечение, но и серьезное, подчас даже сложное искусство. Вот и работы были представлены соответствующие: кто-то показал платформер (жанр, где нужно прыгать, скакать по разным платформам); кто-то – шутер (жанр, где необходимо ходить и стрелять по соперникам); кто-то – стратегию (жанр, где нужно развивать свою базу для одоления соперника). Некоторые углубились в сюжет своей игры, другие же сделали важными аспектами именно геймплейные (игровые) составляющие. Про код в момент презентаций особо не говорили, потому что жюри при желании само могло выяснить интересующие моменты. Презентации могли слушать и просматривать все, ведь наши выступления были больше похоже на «продажу» своего проекта. Мы говорили так, будто хотели, чтобы слушатели купили их продукт.

Если, например, вспоминать мой собственный проект, который занял 3 место в номинации «Проект на языке C++», то он представлял собой некую игру-квест. Сначала надо было разработать свою игру, в которой есть две стадии: разработка и тестирование. На первой стадии нужно на определенных локациях поочередно собрать необходимые игровые элементы: графику, механику, сюжет и секреты. На второй – надо просто проверить игру. Причем проверять должна сама же игра: комментировать свои элементы, критиковать те или иные оплошности и принимать важное решение, добавлять в себя рекламу или найти в самой себе нечто стоящее для игрока.

Первый вариант, добавив рекламу, сделает из игры обычный «таймкиллер» (игра для убийства времени), на этом все закончится. Второго варианта добиться сложно. Весь путь, пройденный для нахождения чего-то стоящего, можно считать полноценной игрой. Что я хотел привнести игру? Игрок выбирает, что открыть первым, и чем раньше он это откроет, тем больше влияния на другие локации он увидит. Далее игрок получит выбор с рекламой, описанный выше.

А теперь, конечно же, стоит рассказать о лучших проектах конференции, поговорив с победителями. Ими стали: в номинации «Проект на языке Python» – Зинченко Семен, 11А класс школы №25; в номинации «Проект на языке C++ 1 курс» – Рожков Максим, 10А класс Академического лицея; в номинации «Проект на языке С++ 2 курс» – Усатов Никита, 11Г класс школы №8.

Максим Рожков, 10А, Академический лицей: «Ленивая» игра

– Максим, скажи в двух словах о сути своего проекта?

– Это была «ленивая» бессюжетная RPG игра, главной целью которой стал сбор ресурсов -> убийство монстров -> улучшение характеристик. Почему «ленивая»? Всё просто: вы можете управлять всего лишь несколькими кнопками, всё остальное делают за вас герои. Скажу также, что данный проект изначально был задуман как «убивалка» времени. В нем я реализовал сохранение игры, сделал свой способ «отрисовки» средствами библиотеки TXLib. Также хочу отметить, что для проекта были изучены и задействованы классы (каждый персонаж – свой класс). Во время разработки данного проекта я вдохновился играми Swag and Sorcery и Eagle Island, именно из них взял много механик.

– Почему ты выбрал именно «ленивую» RPG?

– Потому что это просто: никаких решений, никакой беготни. Нажимайте на пару кнопок и следите за процессом. Вроде бы легко, но очень сильно затягивает!

– Вспомни самый сложный момент во время осуществления разработки?

– Когда я создавал игру, испытывал огромные трудности со способом «отрисовки», так как из-за некоторых особенностей нельзя было просто использовать картинки, а пиксельный стиль игры не позволял рисовать через стандартные средства TXLib (txPolygon и txLine), то пришлось создавать свой способ. Смысл очень прост: для каждой картинки, будь это персонаж или какойнибудь объект, был задуман динамический массив, в котором записаны цвета каждого пикселя. Когда мы вызываем функцию, цикл рисует каждый пиксель из массива (через txSetPixel). Несмотря на то, что способ был специально заточен под этот проект, с ним было много технических проблем.

– Если бы ты решил выпустить игру на каком-нибудь сервисе, то ты стал бы в ней что-нибудь менять или оставил бы всё так, как есть?

– Если я решу выпустить игру на какой-либо площадке, в первую очередь я сделаю сюжет и квесты, больше уровней и больше врагов. Эти вещи были продуманы еще до конференции, но на их реализацию тогда не хватило времени. Также я точно изменю графический движок на более эффективный и менее ресурсозатратный.

Никита Усатов, 11Г, школа №8: Визуализация алгоритмов

– Никита, что особенного в твоем проекте?

– Проект у меня был связан с визуализацией алгоритмов, а если конкретнее – структур данных. По сути, это просто интерактивное приложение, используя которое, можно на уровне ассоциативных представлений проследить работу структур данных. Прямотаки специфичного в моем проекте не так уж и много, чтобы об этом отдельно говорить. Ну, может быть, только использование сторонней библиотеки, да еще спрайтов, картиночек, звуков...

– Как сам оцениваешь актуальность разработанного продукта?

– Таких визуализаций, как моя, в интернете много, и если комуто важно или просто хочется узнать о работе алгоритмов, то такие проекты могут быть очень полезными.

– Что представляют собой структуры данных в твоем проекте?

– Первая структура данных – очередь, которая и выполнена в виде анимированной очереди в магазин. Стек представляет собой стопку книг, которую можно пополнять или уменьшать. Дек является смесью стека и очереди. Я представил его в виде вагонного состава, в который можно добавлять вагоны, причем с разных сторон. И бинарное дерево поиска визуализировано в виде обычного зеленого дерева, в которое рандомно добавляются ветки и расставляются по правилам.

– Какие еще алгоритмы для визуализации ты бы добавил в свою программу?

– Некоторые другие участники визуализировали работу алгоритмов сортировок, мне кажется, это было бы тоже интересно, если сделать красиво.

Семён Зинченко, 11А, школа №25: Генерация уровней

– Семен, что вдохновило на создание игры?

– Моя игра была сделана в жанре roguelike с элементами RPG. Там нет сюжета, есть только несколько реплик главного злодея в начале и в конце игры, которые раскрывают его мотивы и причины попадания в игру главного героя. При создании комнат я вдохновлялся игрой The Binding of Isaac, несколько спрайтов врагов были взяты из популярных игр и фильмов, а потом модифицированы под стилистику игры. Однако в геймплее и механиках старался делать что-то новое, по крайней мере, для себя. Впрочем, для выпуска на какой-либо сервер моя игра пока откровенно сырая: графика зачастую позаимствована или сделана не очень качественно, система экономики и прокачки далека от баланса. К тому же я был единственным тестировщиком и уверен, что если постараться, можно найти пару багов…

– Какой момент разработки стал для тебя самым сложным?

– Самым сложным оказалось создание персонажей. В игре существует 9 классов, и для каждого нужно было придумать характеристики, способности, создать спрайт.

– Как ты сделал случайную генерацию уровней, характерную для roguelike игр?

– Генерация уровней происходит следующим образом: есть изначальная комната, из которой отходят ветки, причем длина их увеличивается по мере прохождения этажей. Ветка представляет из себя несколько подряд идущих комнат с врагами и заканчиваются в комнате с боссом, в тупике или в комнате со случайной наградой.

 

Прошедшая в июне конференция – далеко не единственное большое дело ИТ-школы, ведь прошлом учебном году, планировалось провести специализированную смену в «Уральских зорях» и разные другие мероприятия: ЧКГ («Что, где, когда?»), квизы, дозоры, математические биатлоны и многое другое. Надеюсь, в наступившем году все это получится реализовать. Также я поздравляю с Днём программиста учителей информатики, учеников ИТ-школы и всех, кому небезразлично программирование!

Поделиться:
Общие сведения Об организации Совет ЛЮЖ Члены ЛЮЖ Правила приема Регистрация Проекты и отчеты Архив ЧИП Контактная информация Детские СМИ Новости Конкурсы и фестивали Наши выпускники Медиаобразование Контакты
Войти Мы в соцсетях