IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème de code


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Par défaut Problème de code
    Bonjour, je suis en train de réaliser un mini-projet (mastermind) mais je n'arrive pas à le finaliser. Il y a un problème au niveau des pions mal placés. Je vous remercie de prendre en compte mon problème
    Voici mon code :

    #fonction qui definit les parametres du jeu.

    def initial():
    if nc<n or nc>10 :
    print("Impossible, essaye de lire la consigne")
    print("Tu as perdu")
    else :
    print("Les parametres du jeu sont fixes")
    print("nombre de couleurs :", nc)
    print("nombre de pions :", np)
    return initial

    #fonction qui genere la combinaison de l'ordinateur (co).

    def co():
    co=[]
    for loop in range(np):
    a=randrange(1,nc)
    co.append(a)
    return co

    #fonction qui genere la combinaison du joueur (cj).

    def cj():
    print("Entrer", np,"chiffre(s) compris entre 1 et", nc)
    cj=[]
    for loop in range (np):
    b=int(input())
    cj.append(b)
    return cj
    print("Votre combinaison est la suivante :", cj)
    print("le jeu peut commencer")

    #fonction qui compte le nombre de pions bien places.

    def bp(cobis,cjbis):
    cjbis=list(cjbis)
    bp=0
    for f in range (np):
    if cobis[f]==cjbis[f]:
    bp=bp+1
    cjbis[f]=-1
    cobis[f]=-2
    return bp

    #fonction qui compte le nombre de pions présents mais mal placés.

    def mp(cobis,cjbis) :
    cjbis=list(cjbis)
    mp=0
    for f in range(np):
    for g in range (np) :
    if cjbis[f]==cobis[g]:
    cjbis[f]=-3
    cobis[g]=-4
    mp=mp+1
    return mp

    #fonction qui affiche le resulat.

    def final() :
    print("Essaye encore !")
    print("Nombre de pions bien places :", bp)
    print("Nombre de pions mal places :", mp)
    print("Nombre d'essais :",e)
    print("Bonne chance")

    #programme general.

    print("Avec combien de pions voulez-vous jouer ? Entrez un chiffre entre 1 et 9 inclus")
    np=int(input())
    n=np+1
    print("Avec combien de couleurs voulez-vous jouer ? Entrez un chiffre entre", n,"et 10 inclus")
    nc=int(input())

    initial=initial()

    co=co()
    print(co)
    bp=0
    e=1
    while bp != np :
    cj=cj()
    print(cj)
    bp=bp(co,cj)
    mp=mp(co,cj)
    final=final()
    e=e+1

    print("Vous avez gagne, felicitations !")
    print("Nombre d'essais :", e)
    print("Jeu fini")

  2. #2
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Bonsoir,
    Votre code est inutilisable et illisible.
    Si vous désirez que les gens s'y intéressent mettez-le entre balises "[code]" (bouton # en haut à droite de la fenêtre des messages.

    Clodion

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Par défaut
    c'est bon !!!!!!!!!!!!!!!!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    #fonction qui definit les parametres du jeu.
     
    def initial():
        if nc<n or nc>10 :
            print("Impossible, essaye de lire la consigne")
            print("Tu as perdu")
        else :
            print("Les parametres du jeu sont fixes")
            print("nombre de couleurs :", nc)
            print("nombre de pions :", np)
        return initial
     
    #fonction qui genere la combinaison de l'ordinateur (co).
     
    def co():
        co=[]
        for loop in range(np):
            a=randrange(1,nc)
            co.append(a)
            return co
     
    #fonction qui genere la combinaison du joueur (cj).
     
    def cj():
        print("Entrer", np,"chiffre(s) compris entre 1 et", nc)
        cj=[]
        for loop in range (np):
            b=int(input())
            cj.append(b)
            return cj
            print("Votre combinaison est la suivante :", cj)
            print("le jeu peut commencer")
     
    #fonction qui compte le nombre de pions bien places.
     
    def bp(cobis,cjbis):
        cjbis=list(cjbis)
        bp=0
        for f in range (np):
            if cobis[f]==cjbis[f]:
                bp=bp+1
                cjbis[f]=-1
                cobis[f]=-2
        return bp
     
    #fonction qui compte le nombre de pions présents mais mal placés.
     
    def mp(cobis,cjbis) :
        cjbis=list(cjbis)
        mp=0
        for f in range(np):
            for g in range (np) :
                if cjbis[f]==cobis[g]:
                    cjbis[f]=-3
                    cobis[g]=-4
                    mp=mp+1
        return mp
     
    #fonction qui affiche le resulat.
     
    def final() :
            print("Essaye encore !")
            print("Nombre de pions bien places :", bp)
            print("Nombre de pions mal places :", mp)
            print("Nombre d'essais :",e)
            print("Bonne chance")
     
    #programme general.
     
    print("Avec combien de pions voulez-vous jouer ? Entrez un chiffre entre 1 et 9 inclus")
    np=int(input())
    n=np+1
    print("Avec combien de couleurs voulez-vous jouer ? Entrez un chiffre entre", n,"et 10 inclus")
    nc=int(input())
     
    initial=initial()
     
    co=co()
    print(co)
    bp=0
    e=1
    while bp != np :
        cj=cj()
        print(cj)
        bp=bp(co,cj)
        mp=mp(co,cj)
        final=final()
        e=e+1
     
    print("Vous avez gagne, felicitations !")
    print("Nombre d'essais :", e)
    print("Jeu fini")

  4. #4
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Bonjour,
    Quelques petits tuyaux:
    -donnez à une variable le même nom que les fonctions est une très mauvaise idée.
    -les variables sont normalement nommées de manière à être explicites!
    -ligne 11: vous renvoyez la fonction? Quel est le but?
    -lignes 15, 16, 78… Vous avez une variable "co", qui contient le retour de la fonction "co" qui a elle-même une variable "co" (liste) qui renvoie la liste "co" (ou la fonction elle-même???) et qui de toutes façons renvoie ce "co" lors de la première boucle (puisque le "return" est situé dans la boucle?
    -lignes 31, 32: ne sont jamais exécutées (puisque le "return" est avant. Il est, de plus, dans une boucle qui ne sera donc exécutée qu'une seule et unique fois!!
    -ligne 37: cj est déjà une liste (en espérant que le compilateur préfère renvoyer la variable plutôt que la fonction). C'est donc une liste de liste?
    …

    Bon, j'ai essayé le code… En premier lieu j'ai une erreur car le compilateur n'arrive pas à faire la différence entre vos variables et vos fonctions.
    (ici en l'occurrence "bp")…

    Clodion

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Par défaut
    Merci de votre aide !

Discussions similaires

  1. problème de code avec un tableau
    Par richard038 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/05/2006, 17h35
  2. problème de code javascript pour une vue 360°
    Par tomguiss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2006, 22h50
  3. [POO] Problème de code PHP avec Internet Explorer
    Par bzoler dans le forum Langage
    Réponses: 5
    Dernier message: 12/02/2006, 11h00
  4. Problème de code besoin d un petit depannage
    Par rakengoule dans le forum MFC
    Réponses: 3
    Dernier message: 10/10/2005, 16h25
  5. Probléme de code non portable
    Par Stany dans le forum Windows
    Réponses: 2
    Dernier message: 23/08/2005, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo