REX : Mon premier challenge CodinGame

11 mai 2021

Codingame est principalement un site d’entraînement au langage de programmation utilisé par les recruteurs. Mais il ne se limite pas seulement à cet univers de test et d’évaluation. Il existe également un système de challenge qui m’était jusque-là complètement inconnu. 

Pendant une semaine entière, un défi est relevé par la communauté. Le but ? Des bots/robots codés par les participants s’affrontent par niveaux ou ce qu’on appelle des ligues (bois, bronze, argent, or, legend).

CondinGame, qu'est-ce que c'est ?

Idée reçue

Codingame était déjà passé dans mon radar mais je n’avais, à l’époque, pas été convaincu par ses puzzles games servant principalement à test er nos compétences en langage de programmation. Mon avis a bien évolué et a dépassé cette idée préconçue que je m’en étais faite.

Le hasard d'une rencontre

Le hasard fait bien les choses car durant une de mes missions j’ai été amené à rencontrer une équipe de “vétérans” de Codingame. Ils m’ont alors présenté un plus large éventail des possibilités du site, avec des défis plus aboutis.

Les avantages

L’idée de pouvoir coder un bot pour un jeu compétitif en python était pour le moins séduisante. Surtout que le site a eu la bonne idée de proposer les librairies de nos jours indispensables : numpy et pandas.

Mise en place

Après cette redécouverte de la plateforme, je me suis joint à leur équipe pour participer quelques jours plus tard au  Fall Challenge 2020 .

Ce challenge d’une semaine a pour thème un jeu de plateau physique qui a, pour l’occasion, été codé par les équipes de Codingame.

“Le jeu se déroule dans un magasin de potions dans lequel se trouvent deux sœurs jumelles sorcières, chacune tentant de prouver qu’elle est plus douée que l’autre dans la préparation de potions. Elles ont organisé un petit concours : gagner plus de rubis que sa sœur en vendant des potions. Cependant, la hutte de sorcière où est situé leur magasin n’est pas très grande, elles doivent partager le même espace de travail et gérer les mêmes commandes. “



“Chaque joueur contrôle une sorcière. Chaque sorcière a accès à son propre inventaire d’ingrédients ainsi qu’à une liste de sorts qu’elle a appris. Ces sorts sont utilisés pour transformer un ensemble donné d’ingrédients en un autre.Chaque commande est une liste d’ingrédients nécessaires pour préparer une potion et gagner des rubis. Une partie se déroule sur plusieurs tours. À chaque tour, les joueurs effectuent une action simultanément.

Ingrédients : Il y a 4 types d’ingrédients, de valeur croissante. Les types sont indexés de 0 à 3” (source : Codingame).

Pour plus de renseignements sur les règles du jeu vous pouvez consulter  cette vidéo de tutoriel  (en anglais). 

Déroulé du challenge

L'interface


L’IDE de Codingame : à droite la partie code qui est auto-remplie avec les informations essentielles pour récupérer les inputs et générer les outputs ; à gauche la fenêtre du jeu qui permet de suivre les parties étapes par étapes ainsi qu’une fenêtre de débogage. 

Les ligues

Après avoir testé son bot contre une IA, on lance une série d’affrontements contre les autres participants pour calculer son score au sein d’une ligue (bois, bronze, argent, or et legend), qui s’achève contre un boss.
Si l’on est victorieux, on passe dans une ligue supérieure (si celle-ci est débloquée). L’ensemble des ligues n’est pas accessible dès le départ mais se débloque à un rythme d’une tous les 2 jours. À noter qu’une nouvelle ligue apporte de nouvelles règles. 



Il y a donc dans cette compétition un système régulier de validation pour passer à des niveaux plus élevés, ce qui donne l’occasion de perfectionner son code et discuter stratégie avec son équipe. D’où l’intérêt d’en avoir une !

Se familiariser avec les règles du jeu

Au début même les experts utilisent python ou un autre langage permettant de prototyper rapidement et se familiariser avec les règles et l’interface. Chaque challenge ou puzzle impose un format spécifique aux inputs et outputs, même si l’interface reste la même. Ce passage est le plus déroutant pour un novice. 
Heureusement une fenêtre de log permet de comprendre étape par étape le résultat de notre algorithme.

Évolution des règles

Comme dit précédemment, l’avancement se décompose en ligues. L’évolution dans les premières ligues se fait assez rapidement. Mais tout se complique lorsque les ligues se débloquent avec l’ajout de nouvelles règles. 


Exemple : à partir de la ligue argent, un système d’achat de sort à contester avec l’adversaire est mis en place. Si on n’a pas adopté des bonnes pratiques de code en début de challenge ces ajouts peuvent obliger à tout réécrire.





Quelques conseils pour bien commencer !

  • De bonnes pratiques de code sont très efficaces pour ne pas perdre de temps.
  • Bien choisir son algorithme : a priori partir au plus simple quitte à brader les performances et le faire évoluer en fonction des nouvelles règles de jeu. 
  • Les performances : chaque boucle de calcul ne doit pas dépasser 80 ms, dans la précipitation j’ai oublié que les performances de la bibliothèque pandas sont très inférieures à celles de numpy.
  • Visionner les derniers matchs de notre bot mais également des adversaires, on peut par exemple “charger” un bot pour s’entraîner contre lui. 
  • Une semaine est un temps très court, il faut s’appuyer sur son équipe pour avancer rapidement sur les stratégies et les choix algorithmiques.
  • Ne pas hésiter à copier les données d’entrée dans son IDE préféré (pour moi un notebook) et tester des fonctionnalités pour accélérer le débogage.

Interface pour visualiser nos derniers combats. Elle se paye le luxe d’avoir un système de replay intégré. 

Aller plus loin

Score officiel

À la fin du challenge j’ai terminé en ligue argent malgré de mauvaises performances du code et une prédiction de l’algorithme avec seulement 3 coups d’avance. 



Ce challenge était plutôt compliqué si on compare mon score avec celui de mes collègues plus expérimentés que moi. Cela est surtout dû aux changements de règles, comme l’achat de sort, qui oblige à décomposer notre algorithme en 2 phases lors d’une partie.
Même si l’exercice demande beaucoup de temps pour espérer être performant, l’expérience est addictive !


Je décide de continuer en me fixant comme objectif le rang or… Puis quelques jours plus tard le rang legend.

Challenge en solitaire

Même le challenge officiellement terminé, les bots des participants continuent de s’affronter. On peut donc continuer à s’entraîner pour améliorer son score. 



Cette première expérience ajoutée aux informations récoltées dans les post mortems des participants m’a permis de mettre en place une approche beaucoup plus efficace. Je m’étais d’ailleurs fixé un autre challenge personnel : concurrencer des langages plus bas niveau avec python.

  • Création d’un simulateur simplifié du jeu en python à partir des données d’entrée (liste des potions et recettes).
  • Un code pour tester différents hypers paramètres lié à l’algorithme. 
  • Un nouvel algorithme de recherche en faisceau, le Beam search, plus performant (beam Search  https://en.wikipedia.org/wiki/Beam_search ).
  • Adapter mon code pour prédire les coups de l’adversaire.

Événement marquant

Si je devais ne citer un événement marquant, ce serait celui de mon passage contre le boss entre les ligues or et legend. Sa puissance/son score dépend également de ses victoires contre les autres participants. Après la semaine officielle, il a tellement gagné en puissance qu’il était loin devant les autres participants. Je restais systématiquement à la seconde place juste derrière lui… Frustrant.


Pour le vaincre ma stratégie fut donc de faire varier les hyperparamètres de mon modèle en fonction de sa stratégie et de relancer le fil des combats toutes les 15 minutes. Pas très subtil mais quelle satisfaction quand j’ai finalement atteint le rang légende !

Conclusion


En conclusion, ce type de challenge est addictif et j’ai personnellement atteint mes objectifs, voire plus en accédant au rang légende. En bonus je suis également arrivé dans les premiers sur les participants avec le langage python. 

Grâce à une méthode orienté numpy mon code a pu affronter des langage plus véloces comme C# ou C++, avec une prévision à 15 coups d’avance ce qui était largement suffisant. Je reviendrai d’ailleurs dans un prochain article sur l’utilisation de numpy. 

Si vous avez des questions sur les challenges Codingame ou si vous voulez simplement échanger autour de ce sujet, n’hésitez pas à nous contacter, nous nous ferons un plaisir de vous répondre !  

Ressources Agaetis

par Achats Agaetis 26 novembre 2025
Le contexte du projet : Groupe Aérospatial souhaitait optimiser le temps de contrôle dimensionnel des réservoirs de son lanceur spatial. Les méthodes traditionnelles, longues et peu satisfaisantes, ralentissaient la production et augmentaient les risques d’erreurs. Le besoin était de développer une application de contrôle qualité et dimensionnel intégrant de nouveaux moyens de mesure plus rapides et précis. L’objectifs : L’objectif principal était de concevoir et déployer une application installée sur un PC concentrateur capable de : lancer différents programmes de contrôle dimensionnel, intégrer des technologies de mesure avancées (profilomètres lasers, trackers laser), et améliorer la précision et la répétabilité des contrôles. Durée de mission : Mission de plusieurs mois, de la conception logicielle à la formation des équipes, en passant par l’intégration et les tests. Mise en œuvre : Agaetis a déployé une approche technique et collaborative : Développement de l’application : architecture logicielle adaptée aux besoins d’intégration industrielle. Collecte et traitement des données : intégration des mesures issues des machines à commande numérique, trackers laser et profilomètres. Optimisation des processus : automatisation des contrôles pour gagner en rapidité et réduire les erreurs. Accompagnement & formation : transfert de compétences aux équipes internes pour assurer la continuité. Résultats obtenus : Temps de contrôle réduit : amélioration notable de la productivité. Précision accrue : fiabilisation des mesures grâce à l’intégration de nouvelles technologies. Réduction des erreurs : contrôles plus rapides et répétables. Compétences préservées : maintien de la connaissance technique dans l’organisation. Facteurs clés de succès : Expertise technique d’Agaetis en développement industriel et IoT . Grande flexibilité dans la collaboration avec le client. Intégration fluide des données issues de différents équipements. Approche orientée impact et résultats mesurables. Et vous ? Vous vous interrogez sur : l’optimisation de vos processus de contrôle industriel, l’intégration de nouvelles technologies de mesure, ou la digitalisation de vos applications qualité ? 👉 Contactez nos experts pour moderniser vos contrôles industriels et accroître votre performance opérationnelle.
par David Walter 26 novembre 2025
Directus est-il l’avenir du Low Code ? 1. Comprendre le contexte : le rêve et les limites du Low Code L’essor des outils Low Code et No Code Les solutions no-code visent à simplifier complètement le processus, offrant des interfaces visuelles de type drag&drop, tandis que les plateformes low-code combinent cette simplicité avec la possibilité d’intégrer du code personnalisé pour des besoins plus avancés. Ces outils ont progressivement trouvé leur place dans les entreprises, permettant de créer des POC rapidement ou de moderniser des processus internes simples. Les premiers outils donnant accès à des fonctionnalités de développement simplifiées sont apparus dans les années 90 et début 2000. Mais par leur coût, ils étaient réservés à de grandes entreprises, mais avaient des possibilités limitées et restaient peu scalables. Les outils low code/no code comme nous les connaissons aujourd’hui se sont popularisés au début des années 2010 en réponse à la demande croissante des entreprises pour la digitalisation de processus métiers. Face à la forte demande de développeurs et à la complexité croissante des projets numériques, ces plateformes ont permis à des utilisateurs non techniques de créer des applications, automatiser des workflows et gérer des données sans écrire de code complexe. Quelques chiffres pour comprendre le phénomène Pour évaluer l’impact du no-code en France, examinons quelques statistiques significatives. Entre 2020 et 2025, le no-code est passé d'une tendance émergente à une solution adoptée par une majorité d'entreprises. Une étude réalisée par Hostinger révèle que 71 % des cadres et dirigeants français ont adopté des solutions no-code en 2025 , contre seulement 25 % en 2020. Cette progression illustre une mutation profonde des pratiques numériques. - No-code France : Cette communauté, initié par Contournement en 2019, est passée de 5 000 membres en 2020 à plus de 13 000 en 2025. Elle est la plus grande communauté francophone autour du No-code et regroupe professionnels, freelances et passionnés. - Le SFPN (Société Française des Professionnels du No-code) : Créée en 2020, son but est de fédérer et représenter le No-code au niveau national. Elle organise des événements tels que le Tour de France du No-code et le No-code Summit, et a vu ses adhérents tripler pour atteindre 1 500 membres actifs en 2025. 
Show More