Jeu chercher un nombre

Fermé
thiru - Modifié le 8 nov. 2020 à 00:31
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 9 nov. 2020 à 11:32
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 :

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:

7 réponses

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
8 nov. 2020 à 09:01
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 ...)
0
bonjour, phil



oui, je dois choisir ce procédé
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 8 nov. 2020 à 16:03
OK,

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
0
jee pee Messages postés 39582 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 17 avril 2024 9 225
Modifié le 8 nov. 2020 à 16:38
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 :
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.


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 8 nov. 2020 à 16:44
Ben voila, moi, j'ai repris son code avec des chaines et ca marche

mais je voulais le laisser chercher avant de lui donner la solution ...

et déjà qu'il réponde à ma question d'abord ... avant d'aller plus loin
0
merci j'ai pu voir mon erreur je vous en remercie
Bonne soirée. Thiru Magale
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
9 nov. 2020 à 11:32
Bonjour thiru,

OK, mais maintenant, il te reste à coder la suite du jeu

C'était ta question au départ ...
0