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 :

Jeu de mastermind


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Par défaut Jeu de mastermind
    Bonjour,

    je commence à programmer car je suis en CPGE, le prof nous a demandé de créer un mastermind.
    Voici mon programme: tp03testbetter.py

    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
    mot1=input("saisir un mot: ")
    print("******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************")
    def verif(mot1,mot2):
     
        occurence=0
        for i in range(len(mot1)):
            if mot1[i]==mot2[i]:
                occurence=occurence+1
     
        return(occurence)
     
    mot2="len(mot1)"
     
    while verif(mot1,mot2)!=len(mot1):
     
        test1=True
        while test1:
            mot2=input("Veuillez proposer un mot de "+str(len(mot1))+" lettres: ")
            print(" ")
            if (len(mot1)!=len(mot2)):
                print("erreur: vous avez rentré un mot  de "+str(len(mot2))+" lettres.")
            test1=(len(mot1)!=len(mot2))
     
     
     
        if verif(mot1,mot2)!=len(mot1):
            print("vous n'avez pas trouvé le bon mot, cependant vous avez "+str(verif(mot1,mot2))+" lettres à la bonne place.")
     
    print("***")    
    print("VOUS AVEZ TROUVE LE BON MOT !")

    J'ai mis print("**.....***"), pour que le 2ème joueur ne voit pas le premier mot, cependant je me demandais s'il y avait possibilité de caché l'entrée du mot1.
    Je me demandais également si on pouvait compter le nombre d'essai du joueur 2 et pouvoir ensuite le limiter à un certain nombre d'essai.

    merci d'avance !

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    Salut,

    Il faut commencer par apprendre à poster avec les bonnes balises pour le code, voir Comment on fait pour insérer du code dans un message de forum ?

    c'est un jeu de Mastermind ??, je ne reconnais pas les règles, où sont mes pt'its pions colorés ?



    Pour effacer ta console : Comment effacer le contenu de la console Dos/Shell ?

    à la rigueur pour répéter un caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print ('*' * 200)  # 200 fois le caractère '*'
    ou pour répéter des sauts de ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print ('\n' * 10)  # 10 sauts de ligne
    Je me demandais également si on pouvait compter le nombre d'essai du joueur 2 et pouvoir ensuite le limiter à un certain nombre d'essai.
    rien ne s'y oppose, un compteur de coups que tu incrémentes et le jeu se poursuit tant qu'on n'a pas trouvé le mot ou tant que le nombre de coups est inférieur au nombre de coups maxi que tu t'es fixé.

    Note qu'il y a plein de trucs pour toi en suivant ce lien

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Par défaut
    Je te remercie pour avoir répondu et pour tous les liens, je suis nouveau et je te cache pas que je galère un peu.
    Je vais allez voir ca de suite
    on va dire que c'est un mastermind mots aha !
    Et pour le code: mot2="len(mot1)", je ne comprends pas trop non plus, à la base mon prof a fait une version du jeu où il faut entrer un mot de 5lettres, et j'ai voulu allez un peu plus loin en rentrant un mot avec autant de lettres que le joueur souhaite. Donc mon prof avait mis dans son code: mot2=' ' (avec 5 espaces), je n'ai pas compris pourquoi et quand on l'enlève, le code ne marche plus, je lui ai alors envoyé un message pour comprendre, mais il ne m'a pas encore répondu.
    Encore merci <3

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Par défaut
    J'ai eu un peu de mal, mais j'ai finalement réussi à compter le nombre d'essai.
    Cependant, je n'ai pas du bien comprendre comment effacer le shell après avoir rentré le mot1 puisque sur mon programme import os os.system('cls') ne change rien?
    Voici le nouveau programme:

    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
    mot1=input("saisir un mot: ") 
    import os
    os.system('cls')
     
    def verif(mot1,mot2):
     
        occurence=0
        for i in range(len(mot1)):
            if mot1[i]==mot2[i]:
                occurence=occurence+1
     
        return(occurence)
     
    mot2="len(mot1)"
     
    coup=0
     
    while verif(mot1,mot2)!=len(mot1):
        test1=True
        while test1:
            coup=coup+1
            if coup>3:
                break 
            else:
                mot2=input("Veuillez proposer un mot de "+str(len(mot1))+" lettres: ")
            if (len(mot1)!=len(mot2)):
                print("erreur: vous avez rentré un mot  de "+str(len(mot2))+" lettres.")
            test1=(len(mot1)!=len(mot2))
            if verif(mot1,mot2)!=len(mot1):
                print("vous n'avez pas trouvé le bon mot, cependant vous avez "+str(verif(mot1,mot2))+" lettres à la bonne place.")
     
        if coup>3:
                print("PERDU")
                break        
    if coup<=3:
        print("*"*3,"\n""VOUS AVEZ TROUVE LE BON MOT EN "+str(coup)+" COUPS!")

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 063
    Par défaut
    Essayez de ne pas faire n'importe quoi, il faut:

    • faire énormément de tests avec son interpréteur python
    • éviter de prendre en compte les erreurs utilisateurs (tout du moins au début)
    • créer sur papier un petit algorithme


    Ça ressemble plus à un pendu qu'à un mastermind.

    Pour la partie technique, vous pouvez utiliser:

    Le module getpass, qui permettra de cacher le mot entré par l'utilisateur 1
    Savoir si le caractère est présent dans le mot, l'index proposé par l'utilisateur, et savoir si c'est le bon ou pas, que fait-on dans chacun des cas ?
    Il y aurait si j'ai bien compris 3 options
    1. Si le caractère n'est pas présent
    2. Si le caractère est présent, mais pas à la bonne place
    3. Si le caractère est présent et à la bonne place

    Que fait-on pour montrer à l'utilisateur chacun des cas ci-dessus ? Par exemple un code couleur, ROUGE, JAUNE, VERT...

    Je pense qu'il faut détailler plus, ça implique donc plus de concentration sur le problème, en n'oubliant aucun détails. Il faut penser à tout, puis découper le travail afin de rendre votre code plus facile à corriger lors de bug.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Par défaut
    Bonjour,

    Fred, je m'excuse si le jeu ressemble plus à un pendu mais le prof a appellé ce jeu mastermind dans le tp en nous demandant avec des mots de 5 lettres.
    J'ai juste voulu allez un peu plus loin pour bien comprendre, mais je commence tout juste, et je n'ai aucune base en informatique.

    Vous me parlez de code plus facile à corriger lors de bug mais je ne vois pas trop de quoi vous voulez parler.
    Ensuite vous me dites de ne pas faire n'importe quoi sans me spécifier où j'ai fais n'importe quoi, je ne vois donc encore pas de quoi vous voulez parler...

    Pour ce qui est de cacher le mot1, j'ai essayé avec import os os system('cls'), et cela ne marche pas, j'aurai aimé comprendre etje n'ai pas trop compris votre lien getpass non plus.

    Merci tout de même pour la réponse.

Discussions similaires

  1. Aide jeu du Mastermind
    Par esmeel dans le forum Caml
    Réponses: 4
    Dernier message: 11/12/2013, 17h47
  2. Jeu de mastermind
    Par peily92 dans le forum Caml
    Réponses: 5
    Dernier message: 30/11/2013, 20h10
  3. Blocage dans l'avancée d'un petit jeu de Mastermind
    Par Funky.Jazz dans le forum Débuter
    Réponses: 4
    Dernier message: 12/05/2013, 14h41
  4. Programmation du jeu du Mastermind
    Par Elek7 dans le forum C++
    Réponses: 2
    Dernier message: 13/06/2006, 19h53
  5. Réalisation d'un jeu Mastermind
    Par cybercom dans le forum Pascal
    Réponses: 43
    Dernier message: 14/05/2006, 20h11

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