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

C Discussion :

Jeu Mastermind en C


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Jeu Mastermind en C
    Tout d'abord bonjour a tous !

    Sujet : Je suis actuellement en train de réaliser un MasterMind en C (en console pour le moment et j'utilise code block). Je dois réaliser ce jeu en 3 modes :
    - mode un joueur (calcul aléatoire d'une combinaison et le joueur doit la trouvé)
    - mode 2 joueurs (2 combinaisons différentes sont calculées et chaque joueurs doit trouver sa combinaison. Le premier qui trouve gagne.

    C'est 2 mode je les ai quasiment fini...

    Maintenant le 3 éme mode se complique :
    - mode joueur VS ordi (le joueur fait une combinaison pour l'ordi et l'ordi doit la trouver et inversement. Le premier qui trouve la combinaison de l'autre gagne)

    problème posé : je n'ai aucune idée pour la fonction qui va permettre à l'ordi de trouvé la combinaison du joueur de facon "intéligente"

    Sachant que mon MasterMind est composé de 8 couleurs (enfin les nombres de 1 à 8) et de 4 pions.

    Ah si j'ai oublié de vous dire que j'ai 2 fonctions utile :
    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
     
    //Fonction permettant de compter le nombre de pions biens placés
    //Lorsque qu'un pions est bien placé, la valeur du tableau vaut 0 à l'endroit ou il se trouvé
    int pionsBienPlace(Jeu* j)
    {
        int i;
        int nbPionsBienPlace=0;
        for (i=0; i < j->nbPions; i++)
        {
            if (j->copieTableauCombi[i] == j->copieTableauCombiJoueur[i])
            {
                nbPionsBienPlace++;
                j->copieTableauCombiJoueur[i]=0;
                j->copieTableauCombi[i]=0;
            }
        }
        return nbPionsBienPlace;
    }
     
    //Fonction permettant de compter le nombre de pions mals placés
    //Lorsque qu'un pions est mal placé, la valeur du tableau vaut 0 à l'endroit ou il se trouvé
    int pionsMalPlace(Jeu* j)
    {
        int i,k;
        int nbPionsMalPlace=0;
     
        for (i=0; i < j->nbPions; i++)
        {
            if (j->copieTableauCombi[i]!=0)
            {
                for (k=0; k < j->nbPions; k++)
                {
                    if (j->copieTableauCombi[i] == j->copieTableauCombiJoueur[k] )
                        {
                            j->copieTableauCombi[i]=0;
                            j->copieTableauCombiJoueur[k]=0;
                            nbPionsMalPlace++;
                        }
                }
            }
        }
        return nbPionsMalPlace;
    }

    Voila si quelqu'un a une idée :-°

  2. #2
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Pour avoir la solution à tous les coups je dirais que la fonction naïve est la meilleure, mais il y a sûrement beaucoup mieux ...

    Tu prends 4 couleurs de départ, ensuite au 2ème jeu tu joues les 3 couleurs d'avant +1 tout en décalant d'un rang. Et ce à chaque fois jusqu'à avoir fait toutes les couleurs (et en l'occurrence toutes les positions).
    Exemple :
    1) R V B J
    2) O R V B
    3) N O R V
    4) Bl N O R
    etc.. jusqu'à avoir fait toutes les combinaisons (donc que la dernière couleur "sorte" du jeu).
    Une fois ça fait, tu peux déterminer à coup sûr la combinaison

    Comme dit plus haut il y a sûrement plus simple en moins de nombres de coups
    (c'est la technique que j'utilise pour gagner à tous les coups au Mastermind donc ça fonctionne ^^ )
    Plus tu pédales moins fort, moins t'avances plus vite.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Bonjour,

    La programmation d'algorithme pour les intelligences artificielle ( ou les joueur ordis, simplement ) et souvent basé sur la propre expérience du développeur.

    Premier coup: Quatres couleur aléatoire.
    Deuxième coup: Les Quatres autres couleurs.
    Coup suivant, se base sur les résultats des coups précedents (couleurs bien placée, couleurs mal placée ...) (bon en fait c'est la que les problème commencent )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 620
    Points
    23 620
    Par défaut
    Personnellement, je commence par une même couleur pour les quatre points, et j'évolue en partant de là. En général, je finis 90% des parties en huit coups, environ…

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Comme vous le voyer sa en fait des solution lol ...

    Aufaite j'ai oublié de vous préciser que je doit faire différent niveau pour le jeu !
    Exemple :
    Niveau 1 : 6 couleur et 3 pions;
    Niveau 2 : 8 couleur et 4 pions;
    Niveau 3 : 10 couleur et 6 pions .... etc

    Ce qui complique la chose

  6. #6
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Ca ne change rien au problème
    La technique est toujours la même
    Plus tu pédales moins fort, moins t'avances plus vite.

Discussions similaires

  1. Jeu Mastermind en Python
    Par Black Widow dans le forum Général Python
    Réponses: 2
    Dernier message: 15/06/2013, 15h50
  2. [MAPLE] Programmer le jeu MasterMIND
    Par romain.dupont dans le forum Maple
    Réponses: 1
    Dernier message: 24/05/2013, 12h48
  3. Pb jeu mastermind mode console
    Par Rodrig0 dans le forum C
    Réponses: 6
    Dernier message: 18/05/2011, 21h03
  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