Journal PythonChallenge.com : Un site d'énigmes à résoudre avec Python

Posté par .
Tags : aucun
10
5
juil.
2009
Vous connaissez peut-être déjà Ouverture-facile, un site où l'on doit analyser le code source des pages web, chercher des infos à droite et à gauche, et se creuser sérieusement les méninges pour déduire l'url de la prochaine devinette.

Python Challenge est un site du même accabit. Les différents mystères peuvent (et doivent) se résoudre à l'aide des scripts en Python que vous, pauvre visiteur perdu, écrirez.

Ce site en anglais n'est pas nouveau (2005) et sa présentation est plus que sommaire, mais les énigmes sont bien pensées et permettent de pratiquer le python en se cassant la tête gentiment. Attention, Python Challenge ne s'adresse pas aux néophytes complets en programmation, mais plutôt aux développeurs ayant déjà fait leurs classes en Python (oui, c'est un jeu de mots sur la programmation orientée objet, et non, je n'ai pas honte). Si les premières étapes peuvent être résolues en d'autres langages, n'oubliez pas qu'elles sont construites pour tirer parti des forces de Python et de sséancees modules.

Au fur et à mesure que vous progresserez dans les niveaux, vous pourrez apprendre un peu plus sur les subtilités du langage en consultant les solutions sur le wiki dédié. Vous y trouverez différentes méthodes, plus ou moins élégantes, permettant toutes d'arriver au même résultat. La page concernant chaque puzzle n'est accessible qu'après avoir réussi à le résoudre.

J'en suis au niveau 6 sur 33 en jouant par intermittence depuis hier soir. Le forum du site, en anglais également, regorge d'indices assez obscurs pour vous permettre de continuer à chercher tout en aidant pas mal quand même. Un conseil : si vous arrivez à comprendre le principe de résolution mais que vous ne parvenez pas à écrire le code correspondant, ne boudez pas votre plaisir en googlant la réponse. J'avoue l'avoir fait pour l'un des premiers niveaux, et je le regrette car en cherchant un peu plus j'aurais du pouvoir trouver. Et tricher, c'est mal.

A propos, notre ami le grand moteur de recherche ne référençait pas de trace de PythonChallenge sur Linuxfr, d'où ce journal.

Joyeuse séance de code à tous.
http://www.pythonchallenge.com/
  • # Bof

    Posté par . Évalué à 2.

    J'étais arrivé à des énigmes qui traitaient des images et je m'étais arrêté, non pas parce que je n'arrivais pas à traduire l'énigme en python, mais parce que je n'arrivais même pas à comprendre ce qu'on était censé voir.
    Cela m'était arrivé pour d'autres énigmes avant, où on a droit à des données à déchiffrer, et un """indice""" à peu près inutile tellement il est profondément philosophique et tiré par les cheveux par rapport à ce qu'on doit faire. On est donc condamné à essayer tout et n'importe quoi ou chercher des indices supplémentaires ailleurs (sans vouloir chercher la solution toute faite).
    C'est très frustrant et ça m'a dégouté.
  • # Pourquoi Python ?

    Posté par (page perso) . Évalué à 3.

    Je n'ai regardé que les trois premières énigmes, et pour le moment, je ne vois pas ce que ce jeu a de spécifique au langage Python.

    Je comprends bien que Python fournit un moyen d'obtenir rapidement la solution, mais si j'utilise un autre langage, ou si je résouds les énigmes à la main, le site ne s'en rendra pas compte.

    Les énigmes suivantes sont-elles plus ciblées ?
  • # Enigmes, pas trop concises...

    Posté par . Évalué à 1.

    Première question: dans un carré... "square" en anglais.
    Donc sur la piste du "square root" de l'ensemble...
    Résultat: Ils auraient mieux fait de virer la photo.
    • [^] # Re: Énigmes, pas trop concises...

      Posté par . Évalué à 4.

      Tu trouve les énigmes trop verbeuses ? Tu t'es arrêté où ? Parce que par la suite il y en a des pas très causantes...
      • [^] # Re: Énigmes, pas trop concises...

        Posté par . Évalué à 2.

        Trop verbeuses ? Je dis juste qu'il y a des éléments parasites inutiles que le concepteur n'a pas forcément bien choisi. C'est pas ici "à la recherche du python d'or" et ses fausses pistes en série histoire de faire tourner les gens en rond.

        Quant aux pas très causantes, il n'y en a pas, c'est donc passé sans problème. Là y'a juste une image avec un trait n&b, je devine que le grayscale est choisi pour son codage sur 8bits, comme le texte. Me reste a tester pour valider mon idée.
  • # Je dirais même plus ...

    Posté par . Évalué à 3.

    • [^] # Re: Je dirais même plus ...

      Posté par . Évalué à 4.

      Dans un autre genre cette fois-ci. Il s'agit d'avoir de petites connaissance de C, d'assembleur (une initiation suffira), des outils standards unix et du shell, sinon c'est un bon moyen de les acquérir. Mais surtout il faut savoir s'autodocumenter. Le but du jeu est d'exploiter des failles de sécurité (dépassement de tampon généralement) pour pouvoir monter d'un niveau. Il n' y a en général par d'énoncé du tout, mais seulement un programme 'à exploiter' accompagné éventuellement de son code source.

      Le jeu se passe 'en conditions réelles' : on à accès à une session unix en ligne de commande par ssh, mais bien entendu tout cela se fait dans un cadre légal.

      Le grand intérêt de ces jeux est qu'ils font un panorama des pratiques dangeureuses en C, ce qui permet à l'avenir de les éviter soi-même.

      Deux liens parmis d'autres :
      http://intruded.net/wargames.html
      http://hack.thebackupbox.net/ (j'ai finis tous les niveaux héhé !)
    • [^] # Re: Je dirais même plus ...

      Posté par (page perso) . Évalué à 1.

      Ca ressemble un peu a topcoder aussi, sauf que le niveau des solutions de topcoder est autrement plus eleve que les solutions que j'ai pu voir jusqu'a present...
  • # Un bon moyen d'apprendre le Python

    Posté par . Évalué à 5.

    Bien que les énigmes nécessitent une connaissance élementaire du Python, de mon expérience, je pense qu'elles n'exigent toutefois pas d'être un développeur expérimenté.
    Au contraire :
    - elles permettent de découvrir les bibliothèques de base (PIL, pickle, urrlib, ...)
    - après avoir validé une épreuve, on peut consulter les solutions laissées par d'autres challengers, ce qui permet d'améliorer ses propres techniques.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.