IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

devinez un nombre (jeu)


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Par défaut devinez un nombre (jeu)
    Bonjour
    Je dois faire un programme pour choisir aléatoirement un nombre entier entre 1 et 1000 et ensuite l'utilisateur donne un nombre; si le nombre que l'on donne est trop petit le programme doit le signaler et si il est trop grand il doit le signaler aussi mais le mien tourne en boucle et ne repart pas au debut de la boucle while, si vous pouviez m'aidez. Le voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from random import*
    compteur=0
    n=randint(1,1000)
    i=int(input("dis moi un chiffre entre 1 et 1000"))
    while i!=n:
    if i<n:
    print("Le chiffre cherché est plus grand")
    compteur=compteur+1
    else:
    print("Le chiffre cherché est plus petit")
    compteur=compteur+1
    print("Tu as reussi au bout de",compteur,"coup")

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 205
    Par défaut
    Quand tu postes une portion de code, il faut utiliser la balise Code ( #, dernier bouton de la barre de boutons)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    from random import*
    compteur=0
    n=randint(1,1000)
    i=int(input("dis moi un chiffre entre 1 et 1000"))
    while i!=n:
      if i<n:
        print("Le chiffre cherché est plus grand")
        compteur=compteur+1
      else:
        print("Le chiffre cherché est plus petit")
        compteur=compteur+1
    print("Tu as reussi au bout de",compteur,"coup")
    Essaie de dérouler 'à la main le code que tu as écrit, tu devrais très vite trouver ton erreur.
    Par exemple, la fonction random a renvoyé le nombre 345, et le joueur propose le nombre 500. Que se passe-t-il ?

    Le programme exécute la ligne 1, puis la ligne 2, puis etc etc, je te laisse continuer.

  3. #3
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    je crois deviner que tu nous demandes de réfléchir à ta place ! Loin de moi de vouloir faire le père laMorale mais cette façon de faire ne t'apportera rien!
    Si je te donne la réponse toute faite, j'aurai utilisé mes méninges et cela n'arrangera pas les tiens !
    Au début, c'est compliqué pour tout le monde mais on fini par y arriver
    Pour ton exercice (qui a mystérieusement disparu du post sur les vecteur durant la rédaction de ce post mais, a réapparu dans un nouveau post, ce qui normal), tu poses la question en dehors de la boucle de test et donc en en cas d'erreur, la valeur dans la boucle n'est pas modifiée, l'erreur persiste et le programme tourne indéfiniment.
    Essaye de mettre la question au bon endroit (éventuellement à deux endroits si nécessaire)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Par défaut
    J'ai trouvé en remettant la réponse à la fin de la boucle while merci

  5. #5
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut
    Personnellement, je l'aurais mis la question au début de la boucle.
    On pose une question, on teste la réponse et si elle n'est pas bonne , on recommence.
    La seule difficulté est que i doit exister avant d'entrer dans la boucle sinon le programme se plante.
    On peut fixer i=-1 par exemple; là on est sur que c'est différent de n et on rentre dans la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    from random import*
    compteur=0
    n=randint(1,1000)
    i=-1
    while i!=n:
      i=int(input("dis moi un chiffre entre 1 et 1000"))
      if i<n:
        print("Le chiffre cherché est plus grand")
        compteur=compteur+1
      else:
        print("Le chiffre cherché est plus petit")
        compteur=compteur+1
    print("Tu as reussi au bout de",compteur,"coups")

Discussions similaires

  1. [CASIO FX-180P] Jeu de devinette d'un nombre aléatoire
    Par the_clansman dans le forum Autres langages
    Réponses: 0
    Dernier message: 30/10/2009, 16h06
  2. Algorithme pour le jeu "Nombres et Mots"
    Par Chatbour dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 09/01/2008, 18h58
  3. [C++][JEU] Maintenir un nombre de Frames/secondes
    Par Invité4 dans le forum SDL
    Réponses: 9
    Dernier message: 17/04/2006, 22h07
  4. Nombre aléatoire (petit jeu)
    Par niCo.nb dans le forum C
    Réponses: 7
    Dernier message: 14/10/2005, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo