bonjour,
j'ai l'énoncé suivant:

Enoncé
Écrivez un mini jeu : le programme génère de manière (pseudo-) aléatoire un nombre naturel (nombre secret) dans l'intervalle entre 0 et 100.
Ensuite, le joueur doit deviner ce nombre en utilisant le moins d'essais possible.
A chaque tour le joueur peut faire un essai et le programme doit donner une parmi les réponses suivantes:
"Trop grand" : Si le nombre secret est plus petit et qu'on n'est pas au maximum d'essais
"Trop petit" : Si le nombre secret est plus grand et qu'on n'est pas au maximum d'essais
"Gagné en n essais !" : Si le nombre secret est trouvé
"Perdu ! Le secret était", nombre : Si vous avez fait 6 essais sans trouver le nombre secret
Le joueur a maximum 6 essais ; s'il ne devine pas le secret après 6 essais, le programme s'arrête après avoir écrit "Perdu ! Le secret était", nombre"
Exemple d’exécution gagnante (après la génération du nombre à deviner):
50
Trop grand
8
Trop petit
20
Trop petit
27
Gagné en 4 essais !
Exemple d’exécution perdante (après la génération du nombre à deviner):
50
Trop grand
24
Trop petit
"37
Trop petit
43
Trop grand
40
Trop petit
41
Perdu ! Le secret était 42
Attention: Au dernier essai, votre programme ne doit ni afficher "Trop petit" ni "Trop grand", mais le verdict comme expliqué plus haut !

Pour qu'Upylab puisse tester si votre solution est correcte, il faut que vous respectiez strictement cette séquence. Si par exemple, vous n'affichez pas Trop petit ou Trop grand, le nombre suivant ne sera pas fourni par le système et votre solution sera considérée comme incorrecte
En pratique, vous devez débuter votre code comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
import random
NB_ESSAIS_MAX = 6
secret = random.randint(0,100)
et ne pas faire d'autre appel à randint ou à une autre fonction de random
Conseil pour le débogage de votre code: le programme test d'UpyLaB utilise l'argument entier affiché en sortie, comme seed (graine) du module random. En clair, cela signifie qu'après avoir importé random, l'instruction :
est réalisé par UpyLaB avant d'exécuter votre propre code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
...
secret = random.randint(0,100)
qui fournit le nombre à deviner.
Attention: l'argument n'est donc pas le nombre à deviner, mais bien ce qui permet au programme de le générer.


comme solution j'ai proposé ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import random
NB_ESSAIS_MAX = 6
secret = random.randint(0,100)
for i in range(NB_ESSAIS_MAX):
    guess = int(input())
    if guess> secret and i<NB_ESSAIS_MAX-1:
        print ("Trop grand" )
    elif guess<secret and i<NB_ESSAIS_MAX-1:
        print("Trop petit")
    #elif guess> secret or guess<secret and i==NB_ESSAIS_MAX:
        #print("Perdu ! Le secret était", secret)
    elif secret==guess and i<NB_ESSAIS_MAX:
        print("Gagné en",i+1,"essais !")
        i=NB_ESSAIS_MAX
if secret!= guess:
    print("Perdu ! Le secret était",secret)
le problème sont:
L'appel à votre programme sur l'input "50↵75↵88↵81↵78↵" avec les arguments "74" a été interrompu par une exception:
Ligne 9: EOFError: EOF when reading a line : fail
L'appel à votre programme sur l'input "50↵75↵62↵56↵53↵" avec les arguments "65" a été interrompu par une exception:
Ligne 9: EOFError: EOF when reading a line
L'appel à votre programme sur l'input "50↵24↵11↵17↵" avec les arguments "1" a été interrompu par une exception:
Ligne 9: EOFError: EOF when reading a line
y a t'il de solution à ces problèmes