Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème MasterMind

    29 novembre 2015 à 12:59:56

    Bonjour tout le monde, je dois faire un Mastermind en python, et je me retrouve bloquer à la partie qui permet de compter les pions mal placés.

    Voilà mon programme :

    import random
    
    Couleurs = "RVBJMO"
    Cases = 4
    Essais = 10
    ATrouver = ""
    Proposition = None
    PionsBienPlaces = []
    PionsMalPlaces = []
    
    for i in range (Cases) :
        ATrouver += random.choice(Couleurs)
    print(ATrouver)
    
    while True :
        if Proposition == ATrouver :
            print('You win !')
            break
        else :
            try :
                Proposition = input("Proposer votre code couleur : ")
                PionsBienPlaces = []
                PionsMalPlaces = []
                for i in range (Cases) :
                    if Proposition[i] == ATrouver[i] :                  #ici on compte les pions bien placés
                        PionsBienPlaces.append(i)
                        Proposition[i] = 'v'
                        ATrouver[i] = 'w'
                    else:
                        for j in range (Cases):
                            if Proposition[i] == ATrouver[j] and j != i:             #ici on compte les pions mal placés
                                PionsMalPlaces.append(j)
                                Proposition[i] = 'x'
                                ATrouver[j] = 'y'
                print(PionsMalPlaces)    
                print("Vous avez ",len(PionsBienPlaces)," pions bien placés et ",len(PionsMalPlaces)," pions mal placés.")
            except Exception as z:
                print("Erreur dans la saisie !\n",z)

    Le problème est que le programme compte plusieurs fois certains pions comme mal placés, pour remédier à cela, j'ai rajouter les lignes Proposition[i] = 'v'    ATrouver[i] = 'w'    Proposition[i] = 'x'     ATrouver[j] = 'y'

    sauf que avec ces lignes la, je me fais insulter par ma console python, elle me dit : "  'str' object does not support item assignment  "

    Quelqu'un pourrait il m'aider pour contourner cette erreur ? j'ai chercher sur internet mais je n'ai pas trouver de solution, ou alors cela ne marchait pas. Merci d'avance !

    -
    Edité par titpierrot 29 novembre 2015 à 13:00:41

    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2015 à 13:27:19

      Bonjour, 

      Ton problème viens du faite que tu déclare ATrouver comme un string . En gros pour faire simple un string n'est rien d'autre qu'un tableau de caractère . Et ce tableau en python n'est pas modifiiable.

      Donc si tu as

      variable_string="Bonjour"
      
      variable_string[3]= "n"
       

      Tu auras une erreur "str' object does not support item assignment " donc  tu dois utiliser un tableau comme ça:

      Atrouver = ["rouge","bleu","noir","vert"]
      Proposition = "vert"
      
      if Atrouver[i] == Proposition :
         print("C'est la bonne couleur")
      else:
         print("Mauvaise couleur")

       Pour le début de ton code il faudrait que tu changes .

      import random
       
      Couleurs = "RVBJMO"
      Cases = 4
      Essais = 10
      ATrouver = [] # Modification ICI
      Proposition = None
      PionsBienPlaces = [] 
      PionsMalPlaces = []
       
      for i in range (Cases) :
          ATrouver.append(random.choice(Couleurs))# Modification ICI
      print(ATrouver)
       

       PS: Pour le nom de tes variables regarde du coté de PEP8. Python respecte une certaine normalisation pour le nommage des variables / Classes / Méthodes . (Exemple : ma_variable_trop_long , ma_variable ,MaClasseTropLong, MaClasse )

      -
      Edité par Jo541 30 novembre 2015 à 13:36:08

      • Partager sur Facebook
      • Partager sur Twitter
        1 décembre 2015 à 11:52:10

        Je pense aussi que tu devrais revoir la manière dont tu vas sauvegarder le compte de pions bien placés et mal placés. Pourrais-tu expliqué en français comment tu imagines utiliser les listes PionsBienPlaces et PionsMalPlaces ?

        Je pense que tu devrais écrire en français comment tu procèdes pour vérifier si une combinaison est la bonne quand tu joues au mastermind.

        • Partager sur Facebook
        • Partager sur Twitter

        Problème MasterMind

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown