Partage
  • Partager sur Facebook
  • Partager sur Twitter

mastermind Python 2.0

    12 janvier 2015 à 23:23:34

    Bonjour et Re-bonjour.

    voilà après une aide de la part d'un internaute je reviens vers vous pour une nouvelle question. Je vous fait part de mon code pour que vous puissiez l'examiner.

    import random
    
    error = True
    while error:
        try:
            NbrCoul = int(input("Nombre de couleurs? "))
            assert NbrCoul > 0
            error = False
    
        except:
            print("Attention !!! Entré un nombre supérieur à zéro!")
    error = True
    while error:
        try:
            LongSuite = int(input("Longueur de la suite ? "))
            assert LongSuite > 0
            error = False
        except:
            print("Attention veuillez entré une longueur de suite correcte")
    
    listeO = []
    listeJ = []
    
    
    
    def crealiste():
        for i in range(1, LongSuite + 1):
            listeO.append(random.randint(1, NbrCoul))
    
        s = input("Rentré votre combinaison : ")
        for i in range(len(s)):
            listeJ.append(int(s[i]))
    
        while listeJ[i] >= NbrCoul + 1:
            s = input("Nombre trop grand. Veuillez retaper votre combinaison  : ")
            break
    
        while LongSuite != len(listeJ):
            s = input("Combinaison incorrecte. Veuillez retaper votre combinaison  : ")
            break
    
        for i in range(len(s)):
            listeJ.append(int(s[i]))
    
        return listeJ  # ##liste du joueur
        return listeO  # ## liste de l'ordinateur a trouver
        ### VERIFICATION
    
    
    def evaluation(listeJ, listeO):
        global y
        global z
        global m
        m = 0
        x = 0
        z = 0
        for x in range (x, LongSuite):
            if listeJ[x] not in listeO:
                m += 1
        for x in range (x,LongSuite):
            if listeJ[x] is listeO[x]:
                z = z + 1
            p = set(listeJ) & set(listeO)  # ## mal et bien place en même temps !!!
            y = len(p) - z
        return z
        return y
        return m
    
    crealiste()
    evaluation(listeJ, listeO)
    print(listeO)
    print("il y a ",z," bien placé")
    print("il y a ",y," Mal placé")
    print("il y a",m,"mauvais")

    Voilà, la question suivant est après plusieurs test pour voir si mon programme fonctionne. Mais il s'avère qu'a des moments il dérape et sa m'ennui, voici plusieurs exemple afin que vous puissiez comprend le problème : 

    1er exemple:

    Nombre de couleurs? 4
    Longueur de la suite ? 4
    Rentré votre combinaison : 1243
    [1, 3, 2, 2]
    il y a 0 bien placé
    il y a 3 mal placé
    il y a 1 mauvais

    2eme exemple:

    Nombre de couleurs? 4
    Longueur de la suite ? 4
    Rentré votre combinaison : 1324
    [1, 2, 2, 4]
    il y a 1 bien placé
    il y a 2 mal placé
    il y a 1 mauvais

    un dernier ptit coup de pouce serait le bienvenu.

    je vous remercie d'avance de votre aide si charitable.

    • Partager sur Facebook
    • Partager sur Twitter
      13 janvier 2015 à 4:33:08

      Salut

      Il y a pas mal de choses pas claires encore ^^

      for i in range(len(s)):
          listeJ.append(int(s[i]))

      C'est pas terrible, ça c'est mieux (et plus lisible) :

      for i in s:
          listeJ.append(int(i))


      Pour le reste je saurais trop te dire, mais je trouve que c'est le bordel. Je ne sais pas pourquoi tu fais des return à tout va non plus mais bon :/ Ni pourquoi tu fais des global non plus. Je laisse de meilleurs que moi t'indiquer tout ce qui ne va pas. :)

      -
      Edité par InhumanRampage 13 janvier 2015 à 4:37:56

      • Partager sur Facebook
      • Partager sur Twitter

      mastermind Python 2.0

      × 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