Correction jeu du + ou -

Gouag Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
Forceseek Messages postés 321 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,



Pourrais je avoir vos commentaires sur mon code.



Précisions:

- je ne connais rien en Python, et en informatique de façon générale, excepté de la page 1 du Tuto de openclassroom (https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python jusqu'au début du chapitre sur les fonctions. Autant dire que je ne connais que les boucles.

-s'agissant d'un exercice pour lequel il est demandé connaissance des boucles et random, je n'ai donc utilisé que cela. Je pense qu'on peut simplifier le code en utilisation des fonctions. Mais bon, j'ai suivi les consignes de l'exercice. Ca sera une prochaine étape:). Chaque chose en son temps.

- Le but de mon code est de proposer le jeu du + ou - avec compteur+ choix de deux modes de jeu (1 joueur ou 2 joueurs)+ choix niveau de difficulté (3 niveaux). Je n'ai pas mis d'instructions décrivant les niveaux, les modes de jeu,etc... le but était de voir déjà si ça fonctionne. Je suis également parti du principe qu'on était entre personnes sensées, donc pas de message en cas d'erreur de saisie d'un nombre. Une évolution possible.



PS: je viens de me rendre compte que je n'ai pas mis de commentaires dans mon code pour expliquer les lignes....

Merci d'avance de vos commentaires.


# -*-coding:Latin-1 -*


nombre_saisi = compteur = choix_mode = nombre_mystere = choix_niveau, reponse = 0,1
import random
import os


while reponse == 1:
    compteur = nombre_mystere = nombre_saisi = 0
    choix_mode = input("Choisir le mode de jeu (saisir 1 ou 2):")
    choix_mode = int(choix_mode)
    if choix_mode == 1:
        choix_niveau = input("Choisir votre niveau (saisir 1 ou 2 ou 3):")    
        choix_niveau = int(choix_niveau)
        if choix_niveau == 1:
            nombre_mystere = input("Choisir un nombre mystere entre 0 et 100:")
        elif choix_niveau == 2:
            nombre_mystere = input("Choisir un nombre mystere entre 0 et 1000:")
        elif choix_niveau == 3:
            nombre_mystere = input("Choisir un nombre mystere entre 0 et 10000:")
        nombre_mystere = int(nombre_mystere)
        while nombre_saisi!= nombre_mystere:
            nombre_saisi = input("Saisir un nombre:")
            nombre_saisi = int(nombre_saisi)
            if (nombre_saisi<nombre_mystere):
                print("C'est plus!")
            elif (nombre_saisi>nombre_mystere):
                print("C'est moins!")
            compteur+=1
    if choix_mode == 2:
        choix_niveau = input("Choisir votre niveau (saisir 1 ou 2 ou 3):")    
        choix_niveau = int(choix_niveau)
        if choix_niveau == 1:
            nombre_genere = random.randint(1,100)
        elif choix_niveau == 2:
            nombre_genere = random.randint(1,1000)
        elif choix_niveau == 3:
            nombre_genere = random.randint(1,10000)
        while nombre_saisi!= nombre_genere:
           nombre_saisi = input("Saisir un nombre:")
           nombre_saisi = int(nombre_saisi)
           if (nombre_saisi<nombre_genere):
               print("C'est plus!")
           elif (nombre_saisi>nombre_genere):
               print("C'est moins!")
           compteur+=1
    print("Bravo!Vous avez trouvé le nombre mystère en",compteur,"fois.Voulez vous rejouer?")
    reponse = input("Saisir votre choix (1 pour rejouer et 2 pour quitter):")
    reponse = int(reponse)
   

   
print("A une prochaine fois!")
os.system ("pause")
A voir également:

1 réponse

Forceseek Messages postés 321 Date d'inscription   Statut Membre Dernière intervention   71
 
# -*-coding:Latin-1 -*


nombre_saisi = compteur = choix_mode = nombre_mystere = choix_niveau, reponse = 0,1 #Ça c'est bizarre ?
import random
import os #Utiliser plutôt from os import system (Vu que tu n'utilise que cette fonction)


while reponse == 1: #Il faut plutôt faire while reponse: tout court (remplacer 1 et 2 par True/False)
compteur = nombre_mystere = nombre_saisi = 0
choix_mode = input("Choisir le mode de jeu (saisir 1 ou 2):") #Préciser à l'utilisateur à quoi correspond le mode
choix_mode = int(choix_mode) #Pour optimiser le programme et éviter les bugs on ajoutera un bloc try/except
if choix_mode == 1:
choix_niveau = input("Choisir votre niveau (saisir 1 ou 2 ou 3):")
choix_niveau = int(choix_niveau)
if choix_niveau == 1:
nombre_mystere = input("Choisir un nombre mystere entre 0 et 100:") #Il n'y a de différence que au niveau de la string de l'input ?
elif choix_niveau == 2:
nombre_mystere = input("Choisir un nombre mystere entre 0 et 1000:") #Il faudrait dans ce cas plutôt soit limiter après
elif choix_niveau == 3:
nombre_mystere = input("Choisir un nombre mystere entre 0 et 10000:") #Soit donner l'intervalle du nombre
nombre_mystere = int(nombre_mystere)
while nombre_saisi!= nombre_mystere:
nombre_saisi = input("Saisir un nombre:")
nombre_saisi = int(nombre_saisi)
if (nombre_saisi<nombre_mystere):
print("C'est plus!")
elif (nombre_saisi>nombre_mystere):
print("C'est moins!")
compteur+=1
if choix_mode == 2:
choix_niveau = input("Choisir votre niveau (saisir 1 ou 2 ou 3):") #On ne donne même pas à l'utilisateur à quoi ça correspond
choix_niveau = int(choix_niveau)
if choix_niveau == 1:
nombre_genere = random.randint(1,100)
elif choix_niveau == 2:
nombre_genere = random.randint(1,1000)
elif choix_niveau == 3:
nombre_genere = random.randint(1,10000)
while nombre_saisi!= nombre_genere: #L'utilisateur ne sait pas entre quoi et quoi il faut chercher !
nombre_saisi = input("Saisir un nombre:")
nombre_saisi = int(nombre_saisi)
if (nombre_saisi<nombre_genere):
print("C'est plus!")
elif (nombre_saisi>nombre_genere):
print("C'est moins!")
compteur+=1
print("Bravo!Vous avez trouvé le nombre mystère en",compteur,"fois.Voulez vous rejouer?")
reponse = input("Saisir votre choix (1 pour rejouer et 2 pour quitter):")
reponse = int(reponse)



print("A une prochaine fois!")
os.system ("pause")
J'ai mis mon avis sur le sujet, ça ne veut pas dire qu'il est le meilleur mais bon :)
0