CodinGame : La dernière croisade

Ce soir j’ai participé pour la première fois de ma vie à un concours de programmation. En l’occurrence, mon choix s’est porté sur CodinGame. À la base, l’idée est de montrer ce que l’on sait faire à de potentiels employeurs, mais nombreux sont les gens qui comme moi l’ont fait juste pour le plaisir !

Le concours commençait à 18h ce soir, sur le site. Il s’agissait d’écrire un petit programme dans le langage de notre choix (parmi une liste pré-établie) afin de résoudre un petit problème, le bon fonctionnement du programme étant testé par un robot qui lui fait affronter différentes situations.

Cette fois-ci, comme vous l’aurez compris dans le titre, on parlait d’Indiana Jones ! Il était en effet question d’écrire un programme pour aider ce brave Indy à se sortir d’un piège dans lequel il est (bêtement) tombé en explorant un temple Maya. Normal quoi !

À titre personnel, j’ai choisi de travailler en PHP. J’ai donc abordé tranquillement le premier exercice. Déjà, il a eu le mérite de me faire (re)découvrir les mécanismes de flux d’entrée/sortie en PHP. Ensuite, je dois avouer que le chalenge est assez relevé ! Non pas que l’algorithme en lui-même soit particulièrement dur (pas dans le premier exercice en tout cas), mais la rigueur demandé ainsi que la présence du chronomètre vous oblige à une concentration maximale, ce qui n’est pas désagréable, au final ! À l’issue de une heure quarante-cinq à galérer, j’ai enfin fini par terminer le premier exercice (une erreur stupide dans le fonctionnement d’un tableau m’a fait perdre 45 minutes de débogage…)
Et là, il a fallu aborder le second exercice ! Beaucoup plus corsé, non pas sur le plan de la programmation mais sur le plan de l’algorithmie par contre… Ici, il s’agissait de construire le chemin de la sortie du piège pour notre bon Indy, en faisant tourner les différents blocs qui constituent le tunnel souterrain dans lequel il était tombé. Tâche rendue ardue par le fait que Indy, pendant ce temps-là, tombait dans le vide accompagné de quelques rochers mortels…

Là je dois avouer que j’ai séché ! Ce qui m’a permis de découvrir un autre point sympa du concours : l’entraide. Dans le salon IRC de l’évènement, les participants réfléchissaient ensemble et dans la bonne humeur à une solution au problème qui nous occupait tous.

Après quelques hypothèses, j’ai moi-même tenté un algorithme un peu bourrin, que j’ai codé sans trop de problèmes. Mais il s’est avéré inefficace pour sauver Indy… Devant le peu de temps qu’il me restait, j’ai préféré m’arrêter là et rendre ma copie.

J’obtiens donc un score de 50% en 3 heures, 11 minutes et 40 secondes, soit une 228ème place au classement général (sur 306). Sans être extraordinaire, je suis plutôt content de mon score, pour une première fois, et je suis sûr d’arriver à faire mieux la prochaine fois, maintenant que j’ai bien cerné le fonctionnement d’un tel évènement !

Alors, si vous voulez tester votre talent en programmation, n’hésitez pas à participer à CodinGame ou un autre concours du même style !