FAQ

Mon programme ne fonctionne pas, quelle stratégie pour corriger le code ?

La première chose à faire est d’identifier la nature de l’erreur :

  • si le programme s’arrête prématurément, analyser le message d’erreur. Observer les objets mis en oeuvre sur la ligne concernée. Placer un print() sur la ligne qui précède pour vérifier leur valeur ;

  • si le programme ne rend pas la main, il s’agit d’une boucle infinie. Vérifier les conditions d’arrêt des boucles.

Comment observer l’évolution des objets au cours de l’exécution du programme ?

On peut placer des print() intermédiaires dans le programme.

On peut également utiliser le debugger de Visual Studio Code :

  • placer un point d’arrêt en cliquant à gauche du numéro de ligne concerné (point rouge) ;

  • lancer l’exécution en mode debug : Run > Start Debugging ;

  • observer les variables dans la fenêtre correspondante ;

  • progresser dans le déroulement du programme :
    • Continue pour aller jusqu’au breakpoint suivant ;

    • Step Over exécute le programme pas à pas. Si l’instruction est une fonction, on ne rentre pas à l’intérieur ;

    • Step Into exécute le programme pas à pas. Si l’instruction est une fonction, on rentre à l’intérieur ;

    • Step Out sort de la fonction en cours.

Malgré une enquête approfondie, mon code ne fonctionne toujours pas, que faire ?

Produisez une version minimale reproductible (VMR) de l’erreur et alertez votre intervenant :

  • minimale : par essais successifs, isolez les lignes de code posant problème. Ne conservez que celles là ;

  • reproductible : définissez tous les objets nécessaires à l’exécution de ces lignes de code.

Avant de soumettre votre VMR, vérifiez qu’elle est fonctionnelle sur votre machine.

Y a t-il un moyen d’obtenir une assistance efficace à distance ?

Vous pouvez installer l’extension Live Share dans Visual Studio Code et vous faire un compte GitHub si vous n’en avez pas déjà un (il est nécessaire pour l’authentification). Vous pourrez alors réellement partager votre environnement VS Code et une personne distante pourra venir écrire dans votre fichier (à la manière des Google Docs) ou lancer des commandes dans le terminal.

Je souhaite stocker des informations de façon permanente entre deux sessions de jeu.

Par exemple un état intermédiaire du jeu pour pouvoir le reprendre plus tard, ou les meilleurs scores. Quelle est la meilleure façon de faire ?

On peut utiliser le processus d’écriture/lecture dans un fichier texte, de type csv par exemple. La lecture est abordée dans le chapitre 8 du cours. Plus d’informations, notamment sur l’écriture, dans la documentation officielle.

On peut également utiliser le module pickle qui permet d’écrire/lire directement les objets Python (listes, dictionnaires, etc…) sur le disque. Avec les fonctions pickle.dump() et pickle.load(). C’est beaucoup plus simple mais les fichiers sont binaires et ne peuvent pas être lus avec un éditeur de texte.