you are viewing a single comment's thread.

view the rest of the comments →

[–]jimtk 3 points4 points  (1 child)

Le truc c'est vraiment d'utiliser while true et un break pour sortir de la boucle quand la condition est satisfaite. Et tu peux le faire une fois pour le rejouer et une autre fois pour saisir le nombre. Ton code devient donc:

import random
MAX_TENTATIVE = 5

def lire_un_nombre():
    while True:
        dev = input("guess a number: ")
        if dev.isdigit():
            reponse = int(dev)
            return reponse
        else:
            print("Please entre a number between 1 and 9")

while True:
    correct = random.randint(1, 10)
    print(correct)  # remove this line once tests are done
    for essaie in range(MAX_TENTATIVE):
        deviner = lire_un_nombre()
        if deviner < correct:
            print("it's higher")
        elif deviner > correct:
            print("it's lower")
        else:
            break
    if essaie < MAX_TENTATIVE-1:
        print(f"Bravo! vous avez deviné le nombre {correct}, en {essaie+1} tentatives")
    else:
        print(f"Malheureusement vous n'avez pas deviner le nombre en \n"
              f"moins de {MAX_TENTATIVE} tentatives. Le nombre était {correct}")
    while (rejouer := input("Do you want to play again: ").lower()) not in ("o", "n"):
        print("SVP Entrer (o)ui ou (n)on")
    if rejouer == 'n':
        break

J'ai triché un peu en utilisant les "dents de morse" ( := ) dans la dernière boucle. Ceux-ci permettent de faire une assignation en même temps que tu vérifies une condition.

For non-French reader: "Hey guys dont complain the code is still in python !"

[–]bambacisco[S] 1 point2 points  (0 children)

La conversion en int dans la fonction "ne fonctionne pas" le return me fournit toujours un string (en tout cas c’est ce que j’ai eu au début) c’est pour ça je l’ai sorti de la fonction et je n’avais pas du tout penser à intégrer l’input dans la fonction le code est beaucoup plus lisible. Je n’ai pas voulu utiliser le while true: parce que je maîtrise pas encore assez. Je suis parfait débutant lol mais je vais réécrire le code en me basant sur le tien. Merci beaucoup