====== Problème 2 ====== Réaliser un jeu de devinettes en python. Le but est de deviner un nombre choisi aléatoirement par l'ordinateur, en un nombre d’essais défini dans le code. Le joueur à droit à 4 ou 8 tentatives selon la difficulté choisie. Vous devez réaliser le programme entier par vous même, sans poser de questions à l'enseignant, afin de vous préparer aux conditions d'examen. Vous disposez de l'accès à internet et de toutes les documentations qui s'y trouvent. ===== Déroulement du jeu ===== Voici le déroulement d'une partie : - L'ordinateur demande au joueur de saisir son nom. - l'ordinateur demande au joueur de choisir une difficulté (facile ou difficile) - l'ordinateur choisit un nombre entre 0 et N_MAX (N_MAX est une valeur que vous définirez dans le code de votre programme) - L'ordinateur demande au joueur de saisir une valeur (en utilisant son nom) - L'ordinateur indique au joueur si la valeur saisie est plus grande ou plus petite que le nombre à deviner, ou si le nombre mystère à été trouvé. - Si le nombre mystère n'a pas été trouvé par le joueur, on recommence à l'étape 3. Si le joueur dépasse le nombre de tentatives, un message indiquant que le joueur à perdu est affiché. Si en revanche le joueur trouve la valeur avant le nombre maximum d'essais autorisés, un message de victoire est affiché. ===== Indications ===== ==== Nombres aléatoires ==== Pour générer un nombre aléatoire compris entre 0 et 100 (par exemple) en python, une méthode est de faire: nombre_mystere = random.randint(0, 100) Pour que celà fonctionne, il ne faut pas oublier d'importer le module random au début du code : import random **Liens** * [[https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/234357-un-peu-de-mathematiques#/id/r-234356|Un peu de documentation sur les nombres aléatoires en python3 (fr)]] * [[https://docs.python.org/fr/3/library/random.html|Documentation officielle du module random]] ==== Saisie des valeurs par le joueur ==== Vous devez vous assurer que le joueur saisisse des valeurs comprises entre 0 et N_MAX. Si la valeur saisie n'est pas dans l'intervalle, un message d'erreur est affiché, et on redemande la saisie. Cette mauvaise saisie ne doit pas coûter un essai au joueur (s'il avait 3 tentatives restantes, et qu'il tape une valeur incorrecte, il doit toujours avoir 3 tentatives jusqu'à ce qu'il saisisse une valeur correcte). ==== Utilisation de fonctions ==== Votre code doit être divisé en sous-fonctions, avec par notamment: * une fonction qui gère la saisie du nombre par le joueur, et qui s'assure que la valeur saisie est dans l'intervalle défini; * une fonction qui demande le nom du joueur * une fonction qui permet de saisir la difficulté, et qui s'assure que le joueur saisisse une valeur autorisée * toute autre fonction qui vous semble nécessaire. ==== Saisie de la difficulté ==== La difficulté peut prendre deux valeurs : facile ou difficile. Pour cela le plus simple est de demander au joueur de saisir 1 pour facile, 2 pour difficile. vous devez vous assurer que le joueur saisisse bien 1 ou 2! Une fois une valeur valide saisie, le nombre maximum d'essais sera défini dans une variable **max_essais** qui sera utilisée dans la suite du programme ==== Structure du code ==== Le programme devra être structuré correctement, avec une fonction main et des commentaires comme nous l'avons vu dans les précédents TP.