Boucle d'un jeu probleme

Résolu/Fermé
MaXeo29 Messages postés 2 Date d'inscription samedi 7 novembre 2020 Statut Membre Dernière intervention 7 novembre 2020 - Modifié le 7 nov. 2020 à 18:18
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 7 nov. 2020 à 20:22
Bonjour,
J'ai un petit problème sur un programme python que je suis entrain de créer.
C'est un jeu où la machine prend un nombre au hasard entre 0 et 1000, quand je dis un nombre elle me répond + ou - et je veux que quand je trouve le bon nombre, j'ai la possibilité de rejouer sans relancer le programme sauf que dans mon programme, tout fonctionne à part une petite chose : si je rejoue le nombre aléatoire (n) ne change pas. En gros je peux rejouer sans relancer mon programme mais le nombre aléatoire reste le même. Merci d'avance.
Voici le programme :


Import random
continuer=True
N=random.randint(0, 1000)
X=int(input("saisir un nombre"))
While continuer :
        If X<N :
                Print("plus")
        Elif X>N:
                Print("moins")
        Else:
                Print("bravo!")
                Choix = input("voulez vous rejouer ?")
                If choix not in ('oui') :
                         Continuer=False
         X=int(input("saisir un nombre"))

3 réponses

M3NSONG3 Messages postés 615 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 4 novembre 2021 162
Modifié le 7 nov. 2020 à 18:37
Salut !

Alors pour ça tu as plusieurs moyens... Le plus simple est sûrement d'ajouter un petit quelque chose à ta condition qui vérifie si le joueur veut rejouer ou non.
Ta condition actuelle est "Si choix n'est pas dans ("oui")" (Qui peut tout simplement se changer en if choix != "oui" d'ailleurs), pourquoi ne pas ajouter un else qui lui redéfinirait x ?

Je te donne un petit exemple que je viens de faire vite fait pour te montrer ce que je veux dire :
from random import randint

continuer = True

n = randint(0, 1000)

while continuer:
    x = int(input("Saisir un nombre"))
    if x < n:
        print("plus")
    elif x > n:
        print("moins")
    else:
        print("bravo!")
        choix = input("voulez vous rejouer ?")
        if choix == "oui":
            n = randint(0, 1000)
        else:
            continuer = False


Attention : while, print etc... ne prennent pas de majuscule en Python. Python utilise le snake_case (sans jeu de mots)

0
MaXeo29 Messages postés 2 Date d'inscription samedi 7 novembre 2020 Statut Membre Dernière intervention 7 novembre 2020
7 nov. 2020 à 18:36
Merci beaucoup, c'est vrai que c'était tout bete
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
7 nov. 2020 à 18:32
Bonsoir


Tout d’abord, pour poster un code python, il est impératif d’utiliser les balises de code, voir explications là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Merci à Baladur d’avoir édité ton message pour le rendre lisible.

Décrit ce qui se passe quand tu réponds oui.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
7 nov. 2020 à 20:22
Pense à marquer le sujet résolu
0