Спортивное программирование
Блог компании Mail.Ru Group
8 сентября 2014

Начался третий ежегодный чемпионат Russian AI Cup



Доброго дня и приятного понедельника всем! Сегодня начало не только рабочей недели, но и чемпионата по программированию искусственного интеллекта Russian AI Cup, организатором которого является Mail.Ru Group. Он проходит ежегодно, начиная с 2012 года. В этот раз перед участниками поставлена задача по написанию алгоритма для команды хоккеистов. Принять участие могут все желающие, любых возрастов и квалификаций. Главное — иметь базовые навыки программирования. Список возможных языков программирования ограничен, вы можете выбрать один из следующих вариантов: C++, Java, C#, Python, Ruby или Pascal. Кстати, в прошлом году предпочтения участников распределились таким образом: 36% выбрали C++, 25% — Java, 21% — C#.

Чемпионат состоит из четырёх этапов: песочницы, двух отборочных раундов и финала. По сути, песочница является аналогом квалификационных игр. В ней авторы могут на протяжении всего чемпионата обкатывать различные идеи и стратегии. По результатам игр в песочнице отберут 900 участников для первого раунда. В нём меряются силами команды из двух «хоккеистов». По окончании первого раунда 300 лучших участников перейдут во второй отборочный раунд. Здесь в каждой «хоккейной команде» будет участвовать уже по три виртуальных хоккеиста. И, наконец, 50 лучших стратегий по результатам второго раунда и 10 по рейтингу песочницы смогут сразиться в финале чемпионата. Цель каждой стратегии — забить как можно больше голов, как и в обычном хоккее. Для этого хоккеисты могут перемещаться по игровому полю и выполнять различные действия: подбирать шайбу, отдавать пас, бить по воротам и так далее. Все участники имеют возможность создавать игры, чтобы изучать сильнейших противников и совершенствовать свою тактику. Вот пример простой стратегии на Java — хоккеист сперва едет за шайбой, а, завладев ею, поворачивается в сторону ворот противника и бьёт:

import model.*;
import static java.lang.StrictMath.PI;
import static java.lang.StrictMath.abs;

public final class MyStrategy implements Strategy {
    private static final double STRIKE_ANGLE = 1.0D * PI / 180.0D;
    @Override
    public void move(Hockeyist self, World world, Game game, Move move) {
        if (world.getPuck().getOwnerHockeyistId() == self.getId()) {
            Player opponentPlayer= world.getOpponentPlayer();
            double netX = 0.5D * (opponentPlayer.getNetBack() + opponentPlayer.getNetFront());
            double netY = 0.5D * (opponentPlayer.getNetBottom() + opponentPlayer.getNetTop());
            double angleToNet = self.getAngleTo(netX, netY);
            move.setTurn(angleToNet);
            if (abs(angleToNet) < STRIKE_ANGLE) {
                move.setAction(ActionType.STRIKE);
            }
        } else {
            move.setSpeedUp(1.0D);
            move.setTurn(self.getAngleTo(world.getPuck()));
            move.setAction(ActionType.TAKE_PUCK);
        }
    }
}


«Мы заинтересованы в развитии IT-отрасли в России и с этой целью регулярно проводим IT-чемпионаты, которые собирают огромное количество участников, интересующихся информационными технологиями. Russian AI Cup даёт всем желающим возможность проверить свои силы в создании искусственного интеллекта и привести своего персонажа или свою команду к победе, получив ценные призы и еще более ценный опыт», — прокомментировал Дмитрий Волошин, руководитель департамента образования Mail.Ru Group.

Награды получат восемь сильнейших программистов. За 1 место — Mac Pro, за 2 место — MacBook Pro, за 3 место — MacBook Air, за 4, 5, 6, 7 и 8 места – iPad mini. Будут отмечены и победители из песочницы, для них приготовлены iPod nano.

Расписание этапов чемпионата:

Песочница — с 8 сентября по 19 октября. 15 сентября рейтинг будет обнулён.
Раунд 1: с 27 по 28 сентября.
Раунд 2: с 4 по 5 октября.
Финал: с 11 по 12 октября.

Ждём вас!
+31
12,2k 52
Комментарии 30
Похожие публикации
Популярное за сутки