
Depuis 2012, nous organisons le concours annuel de programmation AI AI Cup pour l'intelligence artificielle. Cette année, il commencera un peu plus tard - pas en novembre, mais à la mi-décembre. Et pour ceux qui veulent préparer ou évaluer leur niveau, nous organisons régulièrement des mini-compétitions Mini AI Cups. Les tâches sont légèrement plus simples que celles offertes à l'IRAC, mais pas moins excitantes.
Et aujourd'hui, nous ouvrons l'inscription à la Mini AI Cup # 3 basée sur Drive AHEAD.
En bref sur la précédente Mini AI Cup

La dernière Mini AI Cup a été implémentée comme un analogue du jeu bien-aimé de nombreux Agar.io, adapté pour lancer des robots autonomes se battant pour avoir la chance de survivre. Cela s'est avéré assez important - plus de 1200 nouveaux participants ont été enregistrés et le nombre de joueurs actifs a dépassé 300 personnes. Alors que les robots se mangeaient littéralement, les participants et les spectateurs mangeaient des seaux de pop-corn. La façon dont le bot essaie d'esquiver, de ruse, d'attaquer depuis les positions les plus avantageuses, comment il craint pour sa vie et se cache des adversaires, fait involontairement peur pour sa vie après des décennies.
À la fin de l'article, vous trouverez cinq liens utiles vers l'analyse des stratégies des participants.
Nous remercions tout le monde pour les commentaires, ainsi que nos
contributeurs pour leur aide dans la finalisation des problèmes techniques. Nous apprécions notre communauté et chaque fois que nous essayons de rendre les championnats plus intéressants.
Règles du jeu du nouveau championnat
Cette fois, l'inspirateur idéologique de la compétition était un jouet appelé Drive Ahead - une arcade mobile furieuse sur la bataille contre les voitures dans des espaces clos et étroits. La mécanique des combats dans ce jeu semblait intéressante et non triviale, et a décidé d'essayer de le répéter pour le championnat.

Voici l'une des cartes sur le terrain de jeu. Le joueur est invité à écrire une stratégie pour l'IA, qui conduira la voiture et tentera de désactiver la voiture de l'adversaire en appuyant sur un bouton spécial sur son corps. Cela vous semble-t-il simple? Bonne chance dans la bataille avec Crazy Loaf!

Au total, trois voitures sont disponibles: Loaf, VAZ 2108 et une autre voiture secrète, que vous verrez dans un test bêta avec différentes skins.
La machine possède de nombreux paramètres qui peuvent être modifiés. Par exemple: entraînement, vitesse maximale, poids, paramètres des roues (poids, taille, position), paramètres des ressorts de suspension. Actuellement, 6 cartes différentes sont disponibles.
Les matchs font 5 morts, celui qui a survécu est le vainqueur. Les tirages sont possibles. Une restriction a été placée au-dessus d'une session de jeu. Si pendant 600 ticks (un tick est une unité de temps dans le monde du jeu), le gagnant ne sera pas révélé, alors la quantité de déchets commencera à augmenter sur la carte. Au bouton duquel les ordures arrivent en premier, il perdra.
Moteur physique
Pour minimiser les risques lors du développement des mécanismes de base du jeu, nous avons décidé de prendre le moteur physique Chipmunk comme base. Il s'agit d'un moteur multiplateforme open source populaire écrit en C, utilisé dans de nombreux jouets mobiles et construit sur d'autres moteurs tels que Cocos2D, Apportable et Marmalade.
Chipmunk vous permet de vous lier à d'autres langages de programmation. La liste complète est présentée sur le
site officiel . Nous avons fait tourner le moteur de haut en bas, cela nous a paru plutôt agréable.
La mécanique
La mécanique est écrite en Python 3.4 à l'aide du moteur Pymunk et du visualiseur Pyglet. Au moment où le championnat commence, localrunner (simulateur local) sera immédiatement disponible dans le référentiel
Github , mais il sera nécessaire d'installer toutes les dépendances pour lui et Python lui-même. Localrunner démarre complètement à partir de la console, prend en charge l'enregistrement de jeux, l'affichage des informations de débogage et la lecture avec le clavier.
Une API a été créée pour vous, selon laquelle la stratégie du joueur, écrite dans votre langue préférée, lit (depuis STDIN) les changements de l'état du monde et envoie (à STDOUT) ses actions. Ainsi, l'utilisateur interagit avec le jeu.
Pendant la compétition, les participants peuvent créer des sessions de jeu de deux types: classement (jeu pour les points, dont dépend la liste des finalistes) et non noté (jeu "juste comme ça" pour essayer leur stratégie en action).
Le contrôle de la machine ne sera simple qu'à la première étape: gauche, droite et coupez le moteur. Dans le classement et les matchs finaux, de nouvelles opportunités seront ajoutées pour augmenter le nombre de stratégies.
Caractéristiques techniques
Nous prenons en charge l'utilisation de Go 1.10, Java 1.8, C # Mono 4.3, NodeJS 9, C ++ 11, C ++ 17, Python 2.7 / 3.5, php7, Kotlin, Haskell, Scala, Rust et Elixir.
Nous avons essayé de rendre l'ajout de nouvelles langues aussi simple que possible - nous n'avons besoin que d'un fichier Docker avec un modèle spécifique. Si vous souhaitez que votre langue préférée apparaisse dans la liste des langues prises en charge, faites simplement une demande d'extraction et nous la testerons.
Aujourd'hui, la quantité maximale de code source pour une stratégie est de 20 mégaoctets sous forme archivée. De plus, nous avons une restriction de plus sur le nombre de solutions envoyées par jour - 20 pièces.
Les règles complètes du championnat seront publiées dans
ce référentiel au début de la compétition.
Horaire
30 août - les tests bêta de la compétition commencent, les joueurs écrivent les premières décisions afin d'être à l'aise et d'être prêts pour les matchs de classement;
6 septembre - ouverture des matchs de classement;
20 septembre - les matchs de classement s'arrêtent, N participants ayant les meilleures décisions se rendent en finale et obtiennent un peu de répit pour finaliser leurs décisions (juste le week-end);
24 septembre - matchs finaux entre les décisions des meilleurs joueurs.
Prix
Première place - le tout nouveau MacBook Air;
Deuxième et troisième place - Apple iPad;
Quatrième, cinquième, sixième place - Samsung Gear S3.
Nous pensons que le participant a le droit de demander un autre cadeau de valeur équivalente en retour. Si vous avez des idées sur la façon de mettre à jour la liste des prix, laissez-les dans les commentaires sous l'article, nous vous en serons reconnaissants.
De plus, notre taxi
Taximobil complimentera les concurrents du TOP10 pour une remise de 250 roubles * 20 voyages / mois.
Tous les joueurs qui se sont qualifiés pour la finale recevront des T-shirts de marque de notre championnat.
On y va
L'inscription est ouverte:
aicups.ru . Pour ceux qui veulent faire partie de notre communauté amicale, nous avons un chat sur Telegram -
@aicups , un canal d'information officiel pour les championnats -
@mrgchamps et un groupe
VK .
Articles utiles - analyse du dernier championnat:
- Alexey Dichkovsky ( @DragoonXen ) - «Mini ai cup 2 ou presque AgarIO - ce qui pourrait être fait pour gagner»
- Alexander Gusev ( @Geotyper ) - «Création d'un bot pour la participation à l'IA mini cup 2018 basé sur un réseau de neurones récurrent» , «(partie 2)» , «(partie 3)»
- Alexander Gusev ( @Geotyper ) - «Création d'un bot pour participer à la mini coupe AI. Expérience GPU »