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 Mastermind en Python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Par défaut Jeu Mastermind en Python
    Bonjour à tous , je sollicite une aide pour un programme permettant de jouer au mastermind de la façon suivante : Le programme tire au hasard la combinaison secrète , vous entrez des propositions afin de la trouver et le programme vous répond avec par exemple "3 bien placés , 1 mal placé" . Malheureusement connaissant seulement quelques bases du langage python , je ne sais pas comment réaliser un tel programme . J'avais commencé comme ça :
    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
    from random import randrange
    print("Ce jeu ne se joue qu'à 1 joueur ! L'ordinateur tient le rôle du cacheur et vous du trouveur!")
     
    i=0
    N=int(input("Saisir le nombre d'essais "))
    tentative=['1','2','3','4']
    code=[randrange(1,10),randrange(1,10),randrange(1,10),randrange(1,10),]
    l=list(set(tentative).intersection(code))
    while i<N:
          report=[]
          N -= 1
          if tentative[0] == code[0]:
                    report.append("X")
          if tentative[1] == code[1]:
                    report.append("X")
          if tentative[2] == code[2]:
                    report.append("X")
          if tentative[3] == code[3]:
                    report.append("X")
     
          tempCode=sorted(code)
          tempTentative=sorted(tentative)
     
          if tempCode[0]==tempTentative[0]:
                    report.append("O")
          if tempCode[1]==tempTentative[1]:
                    report.append("O")
          if tempCode[2]==tempTentative[2]:
                    report.append("O")
          if tempCode[3]==tempTentative[3]:
                    report.append("O")
          i=i+1
    Mais ce programme est incomplet. Merci d'avance pour votre aide

  2. #2
    Membre confirmé Avatar de bringer
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2009
    Messages : 125
    Par défaut
    Bonjour,

    Je ne comprends vraiment votre demande.
    Qu'attendez vous ? Est ce un exercice scolaire ?
    Votre code minimum dans l'état ne donne rien, avez vous essayé de le structurer un minimum ?
    Vous demander un nombre d'essai qui pourrait être le niveau de difficulté du jeu, mais le joueur ne peut pas entrer de combinaison pour pouvoir comparer avec le combinaison du programme.
    Avant de vous lancer dans le code, avez vous pris le temps de réfléchir un minimum à ce que vous attendiez de ce programme ? Comment interagit-on avec ? Comment nous renvoit-il de l'info ?
    Bref, il faudrait éclaircir tous cela.

    Salutations

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Il y a quelque chose de très intéressant à faire avant de "pisser des lignes de code": écrire la logique du programme!

    Il y a longtemps que je n'ai pas joué au mastermind, mais je pense qu'on pourrait écrire cette logique comme suit:

    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
    # initialisation du programme
     
    nbcoul = 8 # nombre de couleurs
    nbpions = 4 # nombre de pions
    nbessais = 10 # nombre d'essais
     
    # nouveau jeu
     
        # l'ordinateur choisit une cible
     
        # boucler sur le nb d'essais jusqu'au maxi 
     
            # le joueur propose une combinaison de pions
     
            # l'ordinateur répond:
            # => calcul du nb de couleurs bien placées
            # => calcul du nb de couleurs présentes mais mal placées
            # => affichage du résultat
     
            # si la combinaison est identique à la cible: fin du jeu avec réussite
            # sinon: autre essai
     
        # l'ordinateur donne le résultat final du jeu (réussite ou échec) avec la cible qu'il avait choisi
     
        # l'ordinateur demande si nouveau jeu
        # si oui: nouveau jeu
        # si non: fin du programme
     
    # fin du programme
    Une fois cette logique clarifiée, le code est beaucoup plus facile à écrire.

    Le point le moins facile à codifier ici est le calcul du nombre de couleurs mal placées.

    A noter que si on paramètre un grand nombre d'essais, par exemple 1000, et qu'on tire au hasard à chaque boucle la combinaison de pions proposée par le joueur, on voit l'ordinateur jouer contre lui-même.

Discussions similaires

  1. Probleme du jeu MasterMind en Python
    Par fan1993 dans le forum Général Python
    Réponses: 3
    Dernier message: 24/04/2014, 22h57
  2. Pb jeu mastermind mode console
    Par Rodrig0 dans le forum C
    Réponses: 6
    Dernier message: 18/05/2011, 21h03
  3. Jeu Mastermind en C
    Par desperados91 dans le forum C
    Réponses: 5
    Dernier message: 02/12/2009, 16h15
  4. [IA] algorithme d'un jeu mastermind
    Par kilam dans le forum Intelligence artificielle
    Réponses: 5
    Dernier message: 01/02/2008, 14h47
  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