Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
programmation:python:prob2 [05/11/2018 04:23] sky99 créée |
programmation:python:prob2 [05/11/2018 05:09] (Version actuelle) sky99 |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Problème 2 ====== | ====== 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: | ||
+ | <code python>nombre_mystere = random.randint(0, 100)</code> | ||
+ | |||
+ | Pour que celà fonctionne, il ne faut pas oublier d'importer le module random au début du code : | ||
+ | <code python>import random</code> | ||
+ | |||
+ | **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. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||