Advent of Code

Un article de Wikipédia, l'encyclopédie libre.

Advent of Code est une série annuelle de défis de programmation informatique qui suit un calendrier de l'Avent[1],[2]. Il existe depuis 2015[3].

Les énigmes (puzzles) de programmation couvrent un vaste champ de compétences et peuvent être résolues en utilisant n'importe quel langage de programmation. Les participants s'affrontent également en fonction de leur vitesse dans les classements mondiaux et privés[1].

Histoire[modifier | modifier le code]

Advent of Code a été créé par Eric Wastl, qui est toujours le seul responsable du projet[1],[4].

L'événement a été initialement lancé le 1er décembre 2015. À minuit Heure de l'Est (UTC−05:00), 81 personnes s'étaient inscrites à l'événement, dépassant légèrement la capacité prévue de 70 participants de Wastl. En 12 heures, environ 4 000 personnes s'étaient jointes, provoquant presque un plantage du système. Après 48 heures, il y avait environ 15 000 personnes et à la fin de l'événement de 2015, le total était passé à 52 000[5].

Le 4 décembre 2022, Wastl a annoncé que le projet avait atteint 1 000 000 d'utilisateurs enregistrés[6].

Conception des énigmes[modifier | modifier le code]

Les puzzles se composent de deux parties qui doivent être résolues dans l'ordre[7],[8] avec la deuxième partie non révélée à l'utilisateur jusqu'à ce que la première partie soit résolue correctement[9]. Les participants gagnent une étoile d'or pour chaque partie qu'ils terminent, ce qui donne un total possible de deux étoiles par jour et de cinquante étoiles par an[9].

Chaque puzzle contient une trame de fond fictive qui est la même pour tous les participants, mais chaque personne reçoit une donnée d'entrée différente et devrait générer un résultat correct différent[9].

Les puzzles sont publiés quotidiennement du 1er décembre au 25 décembre à minuit (heure de l'est). Il n'y a pas de limite de temps pour résoudre les énigmes, et les énigmes des événements des années précédentes restent disponibles pour être résolues[4].

Certains participants ont utilisé des outils tels que GitHub Copilot et ChatGPT pour aider à résoudre les énigmes[4].

Les préparatifs[modifier | modifier le code]

Selon un commentaire dans le code HTML de chaque page du site Web de l'événement, Advent of Code s'exécute à l'aide d'un code Perl personnalisé. Wastl revendique la construction par lui-même de la quasi-totalité du site Web, y compris la conception, les animations, la prose et les énigmes. (Il s'appuie sur d'autres services pour l'authentification, l'analyse et les intégrations de médias sociaux.) [1]

Chaque année, Wastl crée et teste en amont les 25 puzzles. Cela prend 4 à 5 mois de travail par an[1].

Références[modifier | modifier le code]

  1. a b c d et e Wastl, « About », Advent of Code, (consulté le )
  2. Joyce, « Brain teasers and other fun tips for learning Python » [archive du ], SearchBusinessAnalytics, TechTarget, (consulté le )
  3. Speed, « On the first day of Christmas, my true love gave to me... a coding puzzle and it's a doozy » [archive du ], The Register, (consulté le )
  4. a b et c The Download: Clippy Sweaters, ChatGPT Mania, Advent of Code and more [Videotape] (GitHub. Consulté le .
  5. Roberts, « This puzzle challenge brings joy to the world of code », MIT Technology Review, (consulté le )
  6. ericwastl, « #AdventOfCode just hit 🌟1,000,000🌟 registered users!!! », sur Twitter,‎ (consulté le )
  7. Gee, « Advent Of Code For Programmers » [archive du ], I Programmer, (consulté le )
  8. Fisher, « SQL Homework – December 2020 – Participate in the Advent of Code. from Blog Posts – SQLServerCentral » [archive du ], Packt Hub, (consulté le )
  9. a b et c Hjelle, « Advent of Code: Solving Your Puzzles With Python », Real Python, (consulté le )

Liens externes[modifier | modifier le code]