
Good day and have a nice Monday everyone! Today is the beginning not only of the working week, but also of the
Russian AI Cup Artificial Intelligence Programming
Championship , organized by Mail.Ru Group. It takes place annually, starting in 2012. This time, the participants were given the task of writing an algorithm for the hockey team. Anyone 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 in the following way: 36% chose C ++, 25% chose Java, 21% chose C #.
The championship consists of four stages: a
sandbox , two qualifying rounds and a final. In fact, the sandbox is an analogue of qualifying games. In it, authors can run around various ideas and strategies throughout the entire championship. According to the results of the games in the sandbox, 900 participants will be selected for the first round. In it are measured by the forces of the team of two "hockey players." At the end of the first round, the 300 best participants will move to the second qualifying round. Here, each "hockey team" will already participate in three virtual hockey players. And, finally, the 50 best strategies based on the results of the second round and 10 rated sandboxes will be able to fight in the championship final. The goal of each strategy is to score as many goals as possible, as in regular hockey. To do this, hockey players can move around the playing field and perform various actions: pick up the puck, pass the ball, hit the goal and so on. All participants have the opportunity to create games to study the strongest opponents and improve their tactics. Here is an example of a simple strategy for Java - the hockey player first goes for the puck, and, having taken possession of it, turns in the direction of 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; @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); } } }
')
“We are interested in the development of the IT industry in Russia and for this purpose we regularly hold IT championships that gather a huge number of participants interested in information technology. Russian AI Cup gives everyone the opportunity to test their strength in creating artificial intelligence and bring their character or their team to victory, receiving valuable prizes and even more valuable experience , ”commented Dmitry Voloshin, head of the education department of Mail.Ru Group.
Awards will receive eight strongest programmers. For 1 place - Mac Pro, for 2 place - MacBook Pro, for 3 place - MacBook Air, for 4, 5, 6, 7 and 8 places - iPad mini. The winners from the sandbox will also be marked, iPod nano prepared for them.
Championship schedule:
Sandbox - from September 8 to October 19. September 15 rating will be reset.
Round 1: from 27 to 28 September.
Round 2: from 4 to 5 October.
Final: from 11 to 12 October.
Waiting for you!