- PVSM.RU - https://www.pvsm.ru -
Много лет назад друг принес мне поиграть одну игрушку для тех, кто учится программировать. Уже тогда я достаточно хорошо программировал, и подумал, что игра не для меня, но решил попробовать.
Colobot оказалась очень увлекательной игрой, и я до сих пор считаю ее одной из самых интересных из тех, в которые я играл.
Земля посылает экспедицию на другие планеты с целью создать колонию. Вы — астронавт, командующий группой роботов, которая должна колонизировать и защитить планету от опасного вторжения.
Каждый уровень начинается с высадки космического корабля-базы на новую планету. Вы командуете роботами и управляете базой и инфраструктурой для колонизации планеты, выполняя поставленные задания.
Colobot — стратегия в реальном времени с 3D движком. Все юниты подчиняются астронавту. Но, кроме того, что наш герой — астронавт, он еще и программист, и управляет роботами, программируя. То есть вы сами пишете скрипты, по которым работают ваши подчиненные роботы. Роботы бывают разных типов, от военных и разведчиков до исследователей и ремонтных роботов.
У каждого робота есть набор скриптов, и любой из этих скриптов в любой момент можно запустить. Скрипты мы пишем сами, и с каждой миссией и уровнем в запасе их становится все больше и больше.
Скрипты пишутся на языке CBOT, который похож по синтаксису на C++, Java, C#. Описание и возможности языка можно найти здесь [1].
Рассмотрим один из алгоритмов на примере бота заправки. В игре у каждого бота и строения есть батарея. Если она заканчивается, бот выключается, а строение перестает работать. Для продолжения работы батарею нужно заменить. Процесс замены можно автоматизировать, создав бота заправки и написав алгоритм для него.
Алгоритм для бота заправки:
А что произойдет, если у робота, который заряжает и меняет батареи, закончился заряд?
Вот один из вариантов написания алгоритма бота подзарядки на языке CBOT.
extern void object::FieldRefuel()
{
object power=radar(PowerStation);
object bot=radar(TrackedShooter); //only watches 1 bot
errmode(0); //don't exit on errors
while(true) //infinite loop
{
while(bot.energyCell.energyLevel < 0.26) //1/4 energy
{
goto(bot.position);
wait(1);
goto(bot.position); //movement correction
drop(Behind); //switch cells
grab();
turn(90);
drop();
turn(-90);
grab(Behind);
drop();
turn(90);
grab();
goto(power.position); //refuel
wait(7);
move(-5);
}
}
}
Игру выпустила в 2001 году компания Epsitec, и на тот момент она была платной. Позже она была передана в TerranovaTeam, и теперь игра активно дорабатывается и дописывается. Эта бесплатная, некоммерческая версия — Colobot Gold Edition. Разработчики планируют приступить к написанию Colobot 2, обсуждаются идеи.
Чтобы посмотреть готовые рабочие алгоритмы для ботов, можно обратиться к прохождению игры, которое доступно в самой игре. Кроме того, некоторые алгоритмы есть на этом сайте [2].
Colobot Gold доступна для скачивания на официальном сайте для Windows и Linux.
Colobot — стратегия в реальном времени, построенная на программировании, но у Epsitec есть игра, еще более ориентированная именно на программирование, на том же движке — Ceebot. Эта игра и ее задания специально адаптированы для обучения программированию.
Но для бесплатного скачивания доступна только часть миссий. Существуют версии игры для различных возрастных категорий от десяти лет.
Официальный сайт игры [3].
В первую очередь игра будет интересна начинающим программистам, которые только постигают азы кодинга. Но также она может заинтересовать и опытных разработчиков.
Интересная графика и увлекательный игровой процесс помогут втянуться в игру достаточно быстро и не пожалеть о затраченном на нее времени. Сайт программы [4].
Автор статьи: преподаватель образовательной площадки GeekBrains [5] Дмитрий Полянин
Автор: GeekBrains
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/110724
Ссылки в тексте:
[1] здесь: http://colobot.wikia.com/wiki/CBOT_Language
[2] этом сайте: http://v673.com/programmers-games/ready-programms-for-colobot-and-ceebot-games/
[3] Официальный сайт игры: http://www.ceebot.com/ceebot/index-e.php
[4] Сайт программы: https://colobot.info/
[5] образовательной площадки GeekBrains: http://geekbrains.ru/?utm_source=habrahabr&utm_medium=affiliate&utm_campaign=habrahabr_28.01.16
[6] Источник: https://habrahabr.ru/post/276091/
Нажмите здесь для печати.