Jeu chercher un nombre
thiru
-
Phil_1857 Messages postés 1956 Statut Membre -
Phil_1857 Messages postés 1956 Statut Membre -
Bonjour,
Je cherche a crée un jeu; l'ordinateur choisit au hasard un nombre entre 0000 et 7777. L'utilisateur doit le deviner en un nombre minimum d'essais.
A chaque étape, l'ordinateur aide l'utilisateur à trouver en lui indiquant :
Les chiffres qui sont à la bonne place.
Les chiffres qui sont à la mauvaise place.
voici mon code :
Pouvez vous m'aider a le compléter
Je cherche a crée un jeu; l'ordinateur choisit au hasard un nombre entre 0000 et 7777. L'utilisateur doit le deviner en un nombre minimum d'essais.
A chaque étape, l'ordinateur aide l'utilisateur à trouver en lui indiquant :
Les chiffres qui sont à la bonne place.
Les chiffres qui sont à la mauvaise place.
voici mon code :
from random import*
L = []
L.append(randint(0, 7777))
A = int(input("Entrez votre nombre"))
b = A
VBP = 0 # compteur des valeurs bien placées
VMP = 0 # compteur des valeurs mal placées
for i in range(0,len(L)):
if L[i]==b[i]:
print("La valeur", L[i], "de l'indice", i, "est bien placée")
VBP += 1
elif L[i] in b:
print("La valeur", L[i], "de l'indice", i, "est mal placée")
VMP += 1
print()
print("Nombre de valeurs bien placées:", VBP)
print("Nombre de valeurs mal placées:", VMP)
Pouvez vous m'aider a le compléter
Configuration: Macintosh / Safari 13.1.1
A voir également:
- Jeu chercher un nombre
- 94 jeu - Télécharger - Puzzle & Réflexion
- 94 degrés jeu - Télécharger - Divers Jeux
- Nombre de jours entre deux dates excel - Guide
- Jeu zuma - Télécharger - Jeux vidéo
- Jeu google - Guide
7 réponses
Bonjour Thiru,
On te demande de procéder exactement comme ça (affichage des chiffres bien placés ou pas)
ou bien as tu le droit de choisir une autre méthode ?
(Par exemple celle de la dichotomie : entre 0 et 7777, je répond la moitié (3888)
et le programme dit si le nombre est plus petit ou plus grand, et suivant la réponse je donne le
nombre entre 0 et 3888, ou entre 3888 et 7777, et ainsi de suite ...)
On te demande de procéder exactement comme ça (affichage des chiffres bien placés ou pas)
ou bien as tu le droit de choisir une autre méthode ?
(Par exemple celle de la dichotomie : entre 0 et 7777, je répond la moitié (3888)
et le programme dit si le nombre est plus petit ou plus grand, et suivant la réponse je donne le
nombre entre 0 et 3888, ou entre 3888 et 7777, et ainsi de suite ...)
OK,
Et déjà, est-ce que ton code fonctionne, avant d'aller plus loin ?
Moi, je vois des erreurs, dont celle-ci:
Tu utilises le même indice i pour A et L, comme si ils avaient forcément tous les 2 la même longueur
Mais si L = 5953 et A = 15 ..... ça plante
un nombre au hasard entre 0 et 7777, ca peut être 12 ou 256 ou 6543, pas forcément 4 chiffres
tu saisi un int, donc même si tu entre 0012, ca donne A=12
Et déjà, est-ce que ton code fonctionne, avant d'aller plus loin ?
Moi, je vois des erreurs, dont celle-ci:
for i in range(0,len(L)):
if L[i]==A[i]:
Tu utilises le même indice i pour A et L, comme si ils avaient forcément tous les 2 la même longueur
Mais si L = 5953 et A = 15 ..... ça plante
un nombre au hasard entre 0 et 7777, ca peut être 12 ou 256 ou 6543, pas forcément 4 chiffres
tu saisi un int, donc même si tu entre 0012, ca donne A=12
Bonjour,
Quand on lit l'énoncé : un nombre entre 0000 et 7777, et chiffres bien ou mal placés, on pense au Mastermind. Il me semble alors plus judicieux de traiter une chaine de 4 caractères, plutôt qu'un nombre.
Par exemple en utilisant une conversion d'un nombre formaté, on a bien 0000 et pas 0, qui serait plus délicat à tester :
Après il faut surement faire une boucle sur la saisie de l'utilisateur, puisqu'il devrait avoir n tentatives pour résoudre le problème.
Quand on lit l'énoncé : un nombre entre 0000 et 7777, et chiffres bien ou mal placés, on pense au Mastermind. Il me semble alors plus judicieux de traiter une chaine de 4 caractères, plutôt qu'un nombre.
Par exemple en utilisant une conversion d'un nombre formaté, on a bien 0000 et pas 0, qui serait plus délicat à tester :
L='{:04d}'.format(randint(0, 7777)) pareil pour le nombre saisi.
Après il faut surement faire une boucle sur la saisie de l'utilisateur, puisqu'il devrait avoir n tentatives pour résoudre le problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question