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