The third annual Russian AI Cup championship has begun

    Good day and pleasant Monday to everyone! Today is the beginning of not only the work week, but also the Russian AI Cup , the championship on artificial intelligence programming , organized by Mail.Ru Group. It has been held annually since 2012. This time, the participants were tasked with writing an algorithm for a team of hockey players. Everyone can take part, of any age and qualifications. The main thing is to have basic programming skills. The list of possible programming languages ​​is limited, you can choose one of the following options: C ++, Java, C #, Python, Ruby or Pascal. By the way, last year the preferences of the participants were distributed as follows: 36% chose C ++, 25% chose Java, 21% chose C #.

    The championship consists of four stages: sandboxes, two qualifying rounds and a final. In fact, the sandbox is an analogue of qualification games. In it, authors can run various ideas and strategies throughout the championship. According to the results of the games in the sandbox, 900 participants will be selected for the first round. It measures the strength of a team of two “hockey players”. At the end of the first round, the 300 best participants will advance to the second qualifying round. Here, in each “hockey team” three virtual hockey players will participate. And finally, the 50 best strategies in the second round and 10 in the sandbox rating will be able to fight in the championship finals. The goal of each strategy is to score as many goals as possible, as in ordinary hockey. To do this, hockey players can move around the playing field and perform various actions: pick up the puck, pass the pass, hit on goal and so on. All participants have the opportunity to create games in order to study the strongest opponents and improve their tactics. Here is an example of a simple strategy in Java - the hockey player first goes for the puck, and, having taken control of it, turns towards the opponent’s goal and hits:

    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;
        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);
                if (abs(angleToNet) < STRIKE_ANGLE) {
            } else {

    “We are interested in the development of the IT industry in Russia and for this purpose we regularly hold IT championships, which bring together a huge number of participants interested in information technology. The Russian AI Cup gives everyone an opportunity to test their strength in creating artificial intelligence and lead their character or their team to victory, having received valuable prizes and even more valuable experience , ”commented Dmitry Voloshin, head of the education department at Mail.Ru Group.

    Eight of the strongest programmers will receive awards. For 1st place - Mac Pro, for 2nd place - MacBook Pro, for 3rd place - MacBook Air, for 4th, 5th, 6th, 7th and 8th places - iPad mini. Sandbox winners will also be honored, iPod nano prepared for them.

    Championship Stage Schedule:

    Sandbox - from September 8 to October 19. September 15, the rating will be reset.
    Round 1: from September 27 to 28.
    Round 2: from October 4 to 5.
    Final: October 11-12.

    We are waiting for you!

    Also popular now: