Code of the Rings - Bilan Final du Contest

STAY CONNECTED, FOLLOW CODINGAME NOW

Code of the Rings était notre premier challenge d'optimisation de code, sur 24 heures. Nouveau type de contest,  nouveaux défis...
Il y a quelques temps, on vous avait proposé un sondage et l'idée des challenges d'opti était ressortie comme l'une de vos options favorites. On est joueurs, on a tenté le coup en mode Worldcup :)


Bien sûr, quand on lance quelque chose de nouveau, on s'expose à des risques, il y a toujours une part d'inconnu... Donc malgré toutes nos anticipations, il y a eu quelques petits couacs, et on s'en excuse (problèmes de perf essentiellement : surcharge des serveurs et soucis à à l'affichage du rang).


Merci aux 4452 participants qui ont tenté l'expérience. On espère malgré tout que vous avez apprécié le jeu.


PODIUM & CLASSEMENT


Vous êtes 2593 à figurer dans le leaderboard, bravo à tous !

Les 3 premiers du podium ont réussi à réduire leur code en passant sous la barre des 3500 caractères, on a été impressionnés : SimonM (France, C++, 3231 caractères), eldidou (France, C++, 3394 caractères), et geza (Hungary, C++, 3418 caractères).

Le temps moyen passé sur le contest est de 18 heures, 33 minutes, 15 secondes.


LE JEU




L'objectif était d'aider Bilbo à s'échapper de la forêt en lui envoyant une série d'instructions qui lui permettaient d'épeler un phrase à l'aide de pierres magiques (runes). Les CodinGamers expérimentés ont pu rapidement voir qu'il s'agissait d'optimiser le nombre de caractères d'un programme en Brainf**k

La taille de la mémoire (= la forêt) et la capacité de chaque case mémoire  (= une rune) ont été modifiées pour rendre le jeu plus fun. De notre côté, on a essayé de proposer un jeu qui soit le plus accessible possible, pour pouvoir obtenir très rapidement un code qui passe tous les tests. 

Le défi consistait à optimiser ce code pour monter dans le classement. Plusieurs techniques étaient possibles :
  • Glouton : mettre en place des techniques que l'on aurait identifiées avant sur papier pour gagner rapidement des caractères (exemple : trouver la meilleure case pour afficher la prochaine rune, [-] pour remettre une rune à zéro, profiter du fait que la mémoire (forêt) et les runes sont circulaires...)
  • Parcours en largeur : anticiper ses coups sur plusieurs tours, c'est à dire, par exemple, tester toutes les combinaisons de déplacements et de changement de rune
  • Heuristique : c'est une méthode approximative qui permet de choisir le meilleur coup sans brutforcer toutes les solutions
  • Initialisation : initialiser toute les runes de la forêt à M avec -------------[<-] 
  • Profiter des boucles ([]) : soit détecter les bouts de chaînes qui se répêtent pour générer des boucles, ou directement compresser un code Brainf**k en détectant des boucles.
N'hésitez pas à nous dire quelles stratégies et astuces vous avez vous-mêmes utilisées via le post dédié dans le Forum : https://www.codingame.com/forum/t/code-of-the-rings-feedback-strategies/775/26

L'intérêt de ce challenge était aussi de rendre accessible à tous le Brainf**k et ses concepts, qui peuvent faire peur au départ mais qui permettent de découvrir d'autres facettes de la programmation. On espère que vous avez apprécié :)

Retrouvez le jeu Bilbo's Forest - Output length dans la catégorie "Optimisation" : https://www.codingame.com/puzzles



LE 26 SEPTEMBRE, REJOIGNEZ BACK TO THE CODE:

 Back to the Code - September Contest

Aucun commentaire

Enregistrer un commentaire