Vérifier combien de fois un caractère est dans une liste

Fermé
Brafagouille78 - 27 oct. 2014 à 18:09
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 9 nov. 2014 à 14:13
Bonjour,Je réalise un Mastermind et j'aurais besoin de vérifier si un caractère est dans la liste générée aléatoirement mais surtout combien de fois car le problème est que si j'entre par exemple 2,2,2,2 il me dira qu'il a quatre de bons alors que ce n'est pas forcément le cas.

Voici ici le programme entier j'ai indiqué à l'aide de commentaire la partie qui ne fonctionne pas correctement :

import random
tab = []    
essais = 0
                           
for i in range(6):                        
    tab.append(random.randint(1,4))
    
tab = [random.randint(1,6) for i in range(4)] 


tab1= []

while tab1!= tab :
    z=0
    y=0
    u=0
    tab1= []                           #génaration aléatoire
    for i in range(1, 5) :
            tab1.append(int(input()))

		
    print(tab1)

    
    
    for x in range(0,4) :       #verification des biens placés fonctionne correctement
        if tab[x]== tab1[x]:
            z+=1
    print(z," de bien placés")


    for x in range(0,4):                                            #Verifications des bons (ne fonctionne pas correctement)
        if x in range(1) and tab1[x] in tab  :
            y=y+1
        elif x in range(2) and tab1[x] in tab  :
            y=y+1
        elif x in range(3) and tab1[x] in tab  :
            y=y+1
        elif x in range(4) and tab1[x] in tab  :
            y=y+1
    print(y,"de bons")
    essais=essais+1
    
    if tab1== tab :
        print("GAGNE")
        print("Trouvé en",essais,"essais !!! ")
        break
        
del(tab1[:])
    
    


Merci d'avance pour votre aide
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
9 nov. 2014 à 14:13
Bonjour,

for i in range(6):                        
    tab.append(random.randint(1,4))
    
tab = [random.randint(1,6) for i in range(4)] 

Si tu mets tab=[random....], ton for ne sert à rien...

for x in range(0,4):                                            #Verifications des bons (ne fonctionne pas correctement)
        if x in range(1) and tab1[x] in tab  :
            y=y+1
        elif x in range(2) and tab1[x] in tab  :
            y=y+1

Que souhaites-tu faire avec cette boucle for ?
0