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):
Exemple d’exécution perdante (après la génération du nombre à deviner):50
Trop grand
8
Trop petit
20
Trop petit
27
Gagné en 4 essais !
Attention: Au dernier essai, votre programme ne doit ni afficher "Trop petit" ni "Trop grand", mais le verdict comme expliqué plus haut !50
Trop grand
24
Trop petit
"37
Trop petit
43
Trop grand
40
Trop petit
41
Perdu ! Le secret était 42
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 :
et ne pas faire d'autre appel à randint ou à une autre fonction de random
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 import random NB_ESSAIS_MAX = 6 secret = random.randint(0,100)
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 random.seed(argument)
qui fournit le nombre à deviner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ... secret = random.randint(0,100)
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:
le problème sont:
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)
y a t'il de solution à ces problèmesL'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
Partager