NewbieContest

Général => Général => Discussion démarrée par: KriKri Noob le 27 Février 2013 à 20:53:18



Titre: Aide Java Mastermind
Posté par: KriKri Noob le 27 Février 2013 à 20:53:18
Bonsoir,

J'ai une petite application de mastermind à programmer et j'ai quelques difficulté, si quelqu'un sais m'aider je lui en serais reconnaissant :

Problème 1 :
//*lettre 1

 System.out.print(" rentrer lettre 1 : ");
            do
            {
            V=Saisie.lire_char();
            V=java.lang.Character.toUpperCase(V);
            }
            while((V<'A')||(V>'F'));

                System.out.print(" rentrer lettre 2 : ");
                do
                {
                W=Saisie.lire_char();
                W=java.lang.Character.toUpperCase(W);
                }
                while((V<'A')||(V>'F'));

//*lettre 2
Quand je rentre une autre lettre que a,b,c,d,e,f dans la lettre 1 pas de problème je peux rectifier mais quand je rentre une auter lettre dans lettre 2 la condition de ma boucle while ne fonctionne pas !
c'est pourtant la même !

Problème N°2 :
deux int : D (difficulté rentré par le joueur) et n (nombre de coup possible )

         System.out.println(" rentrer difficulte (1, 2 ou 3)  ");
         D=Saisie.lire_char();
         if (D==1)
          {
          n=12;
          System.out.println(" Nombre d'essaie : " +n);
          }
             else if (D==2)
             {
             n=8;
             System.out.println(" Nombre d'essaie : " +n);
             }
                else if (D==3)
                {
                n=5;
                System.out.println(" Nombre d'essaie : " +n);
                }

j'ouvre ensuite une boucle


do
          {
*tout mon programme
          }
          while (i!=n);

apparemment je n'ai pas le droit de mettre une lettre derriere le = ?? j'ai fais quelques essais mais infructueux !


dernier problème pour le moment :

Je cherche un moyen pour ne rentrer qu'un seul caractère ( si je rentre un r ou un j le programme repose la question, mais si je rentre ''aa'' ou ''bc'' le programme ne vois pas d’erreurs, j'aimerai donc ne pouvoir en rentrer qu'une !

Merci beaucoup pour votre aide

Cordialement christian


Titre: Re : Aide Java Mastermind
Posté par: Opsse le 27 Février 2013 à 21:49:37
Problème 1 :

Oui les deux conditions sont les même et un peu trop, tu as oublié de changer la variable, c'est while((W<'A')||(W>'F')); et pas while((V<'A')||(V>'F'));

Problème 2 :

Sur : while (i!=n); i c'est ton compteur de tour ?
C'est quoi l'erreur que ça t'affiche ?

Problème 3 :

Je ne connais pas de moyen pour empêcher l'entré de plusieurs caractères dans la console.
Essaye de faire un System.out.println(V); juste après la V=Saisie.lire_char(); pour voir ce qu'il récupère lorsque tu rentres plusieurs caractères.


Titre: Re : Aide Java Mastermind
Posté par: KriKri Noob le 27 Février 2013 à 22:14:57
pour l'erreur n1 c'etait vraiment gros j'ai honte -_- !


Pour la deux j'ai oublié de mettre D=Saisie.lire_int(); à la place de lire_char mais ce n'était pas sa !

i est bien mon compte tour qui fonctionne trés bien si je met 5 à la place de n.

rapport d’erreur :
master2.java:172: error: variable n might not have been initialized
          while (i!=n);
                    ^

avec systeme_out_print il récupère la première lettre rentré, seulement si la première fait partie des bonnes lettres


Titre: Re : Aide Java Mastermind
Posté par: Opsse le 28 Février 2013 à 00:06:03
Essaye d'initialiser ta variable n avant ta boucle de jeu, comme ca :

int n = 0;

*Choix de la difficulté

int i = 0;
{
     *tout mon programme
     i++;
}
while (i!=n);

Et du coup pour Saisie.lire_char(); ca doit enregistrer la première lettre qui est détecté en entrée sur le terminal mais je ne vois pas comment tu peux empêcher l'utilisateur d'en taper d'autre. Peut être une autre méthode de Saisie qui récupère toute la ligne un truc du genre Saisie.lire_String() si ca existe, et après tu vérifie que la variable récupéré n'a qu'un seul caractère.


Titre: Re : Aide Java Mastermind
Posté par: KriKri Noob le 28 Février 2013 à 00:24:59
Merci pour le n=0; je pensais que le définir une fois suffirait
 ;)


Titre: Re : Aide Java Mastermind
Posté par: Opsse le 28 Février 2013 à 03:48:44
C'est pas top de définir une variable dans un if, mieux vaut l’initialiser avant et la modifier dans le if comme ça tu est sur qu'elle existe dans tout les cas.


Titre: Re : Aide Java Mastermind
Posté par: KriKri Noob le 28 Février 2013 à 10:28:45
j'aimerai également faire un rappel des coups joué avant,

après avoir rentré la dernière lettre, le code rentré s'affiche

System.out.print(" rentrer lettre 5 : ");
                         do
                         {
                         Z=Saisie.lire_char();
                         Z=java.lang.Character.toUpperCase(Z);
                         }
                         while((Z<'A')||(Z>'F'));

                         System.out.println(" Code saisi :" +V+","+W+","+X+","+Y+","+Z);

est ce que je peux m'en resservir pour le mettre quelque part ? ( un tableau ? autre chose ? )
Je sais pas trop comment faire sa  :/


Titre: Re : Aide Java Mastermind
Posté par: Opsse le 01 Mars 2013 à 05:55:44
Oui tu peux les stocker dans un tableau :

Tu la déclare au début de ton jeu :
int[] derniereCombi = new int[5];

A chaque fin de tour tu remplis le tableau et à chaque début tu l'affiches. 


Titre: Re : Aide Java Mastermind
Posté par: KriKri Noob le 01 Mars 2013 à 14:21:13
Ma partie ne veux pas se relancer à 0 je ne comprend pas ^^
n'hésiter pas à me proposer des améliorations ou des simplifications ( n'oubliez pas que je suis un noob  =D )
Code:
  {
/*
v = lettre aléatoire N°1,
w = lettre aléatoire N°1,
x = lettre aléatoire N°1,
y = lettre aléatoire N°1,
z = lettre aléatoire N°1,

V = première valeur rentrée par le joueur,
W = deuxieme valeur rentrée par le joueur,
X = troisieme valeur rentrée par le joueur,
Y = quatrieme valeur rentrée par le joueur,
Z = cinquieme valeur rentrée par le joueur,

i = compteur de tentative,
bien_place = compteur de lettre bien placée dans la combinaison,
mal_place = compteur de lettre mal placée dans la combinaison,
D = niveau de difficulté du jeux rentré par le joueur,
n = nombre de coup que le joueur est autorisé à jouer en fonction du niveau de difficulté,
J = autorise le joueur à relancer une nouvelle partie quand la précedente est terminée,
*/

  char v, w, x, y, z, V, W, X, Y, Z;
  int i, bien_place, mal_place, D, n, J;
  

        System.out.println(" Bienvenue dans ma version de Mastermind ");

[color=red]do
 {[/color]
    /* définition des variables à 0 */

  J=0;
  i=0;
  n=0;

    /* définition aléatoire de la combinaison */

         v = (char)('A' + (int)(Math.random()*5));
         w = (char)('A' + (int)(Math.random()*5));
         x = (char)('A' + (int)(Math.random()*5));
         y = (char)('A' + (int)(Math.random()*5));
         z = (char)('A' + (int)(Math.random()*5));

    /* difficulté du jeux qui définie le nombre d'essaie */

         System.out.println(" rentrer une difficulte (1, 2 ou 3)  ");
         D=Saisie.lire_int();
         if (D==1)
          {
          n=12;
          System.out.println(" Nombre d'essaie : " +n);
          }
             else if (D==2)
             {
             n=8;
             System.out.println(" Nombre d'essaie : " +n);
             }
                else if (D==3)
                {
                n=5;
                System.out.println(" Nombre d'essaie : " +n);
                }


         System.out.println(" Code secret = " +v+","+w+","+x+","+y+","+z);
          do
          {
            /* définition des variables compteur bien_place et mal_place à 0 */

              bien_place=0;
              mal_place=0;

           /* Le joueur entre sa combinaison qui s'affiche au fur et à mesure */

            System.out.print(" rentrer lettre 1 : ");
            do
            {
            V=Saisie.lire_char();
            V=java.lang.Character.toUpperCase(V);
            }
            while((V<'A')||(V>'F'));

                System.out.print(" rentrer lettre 2 : ");
                do
                {
                W=Saisie.lire_char();
                W=java.lang.Character.toUpperCase(W);
                }
                while((W<'A')||(W>'F'));

                   System.out.print(" rentrer lettre 3 : ");
                   do
                   {
                   X=Saisie.lire_char();
                   X=java.lang.Character.toUpperCase(X);
                   }
                   while((X<'A')||(X>'F'));

                      System.out.print(" rentrer lettre 4 : ");
                      do
                      {
                      Y=Saisie.lire_char();
                      Y=java.lang.Character.toUpperCase(Y);
                      }
                      while((Y<'A')||(Y>'F'));
          
                         System.out.print(" rentrer lettre 5 : ");
                         do
                         {
                         Z=Saisie.lire_char();
                         Z=java.lang.Character.toUpperCase(Z);
                         }
                         while((Z<'A')||(Z>'F'));

         /* affichage du code saisi */

                         System.out.println(" Code saisi :" +V+","+W+","+X+","+Y+","+Z);

        /* incrément et affichage du compteur de tentative */

               i++;
               System.out.println(" Tentative numero : " +i);

        /* recherche dans la combinaison de lettre bien placé ou mal placé et incrément des compteurs */

               if (v==V)
               {
               bien_place++;
               }
                 else if ((v==W)||(v==X)||(v==Y)||(v==Z))
                 {
                 mal_place++;
                 }

                 if (w==W)
                  {
                   bien_place++;
                  }
                      else if ((w==V)||(w==X)||(w==Y)||(w==Z))
                        {
                        mal_place++;
                        }

                        if (x==X)
                         {
                           bien_place++;
                         }
                            else if ((x==W)||(x==V)||(x==Y)||(x==Z))
                             {
                             mal_place++;
                             }

                              if (y==Y)
                                {
                                 bien_place++;
                                }
                                  else if ((y==W)||(y==X)||(y==V)||(y==Z))
                                  {
                                  mal_place++;
                                  }

                                              if (z==Z)
                                               {
                                               bien_place++;
                                               }
                                                else if ((z==W)||(z==X)||(z==Y)||(z==V))
                                                {
                                                 mal_place++;
                                                }

          /* affichage des compteurs de lettre bien placé et mal placé */

               System.out.println(" mal place : " +mal_place);
               System.out.println(" bien place : " +bien_place);

         /* affichage d'une fenetre si le joueur trouve la bonne combinaison */

             if ((v==V)&(w==W)&(x==X)&(y==Y)&(z==Z))
             {
             JFrame frame = new JFrame(" BRAVO!!");
             JLabel label = new JLabel(" Tu as trouvé la bonne combinaison !", JLabel.CENTER);
             frame.getContentPane().add(label);
             frame.setSize(300,100);
             frame.setVisible(true);

        /* Incrément de la variable J pour une nouvelle partie en cas de partie gagné*/

             System.out.println(" Partie fini ");
             [color=red]System.out.println(" REJOUER (tapez 1)");
             J=Saisie.lire_char();[/color]
             }
        /* Affichage d'une fenetre si le joueur atteint le nombre maximum de tentative */

             if  (i==n)
             {
               JFrame frame = new JFrame(" Désolé!!");
             JLabel label = new JLabel(" Tu  n'as réussie à trouver la bonne combinaison !", JLabel.CENTER);
             frame.getContentPane().add(label);
             frame.setSize(300,100);
             frame.setVisible(true);
            
       /* Incrément de la variable J pour une nouvelle partie en cas de partie perdu */
          System.out.println(" Partie fini ");
         [color=red] System.out.println(" REJOUER (tapez 1)");
          J=Saisie.lire_char();[/color]
          }
          }
      /* Relance d'une nouvelle tentative tant que le nombre de tentative maximum n'est pas atteint ou que la partie n'est pas terminé */
        [color=red]  while ((i!=n)||(J!=1));[/color]

 }
      /* Relance d'une nouvelle partie si la partie en cour se termine ( gagné ou perdu ) */
[color=red]while (J!=1);[/color]




  }
}


Titre: Re : Aide Java Mastermind
Posté par: KriKri Noob le 01 Mars 2013 à 14:57:31
char[] derniereCombi = {'V','W','X','Y','Z'};
System.out.println(" Derniere combinaison rentree "+derniereCombi);

Sa ne m'affiche pas les lettres que je rentre  :shock: , mais plutot un **No Sms** charabia ^^
De plus pour le moment je ne sais pas comment garder mes valeurs de tableau dans le tour d'après

ex :

je rentre A,A,A,A,A
*à la fin du tour j'appel mon tableau *
derniere combi : A,A,A,A,A  ( pour l'instant plus simple de faire System.out.println(" Derniere combi :" +V+","+W+","+X+","+Y+","+Z);
je rentre ensuite B,B,B,B,B
*à la fin du tour j'appel mon tableau *
derniere combi : B.B.B.B.B
sauf que moi j'aurai voulu avoir
derniereS combi : A,A,A,A,A
                        B,B,B,B,B

C'est possible ?

System.out.println(" J : "+J);
j'ai fais ce test après avoir taper 1 pour rejouer

et sa me met J:49
Je comprend pas trop 


Titre: Re : Aide Java Mastermind
Posté par: Opsse le 01 Mars 2013 à 17:56:16
Bon déjà quadruple poste les modos risquent de ne pas aimer et quand tu met autant de code met le entre balise [*code*][/*code*] (sans les *)

Pour afficher les valeurs d'un tableau fais plutôt ça :
Code:
char[] derniereCombi = {'V','W','X','Y','Z'};

System.out.print(" Derniere combinaison rentree :");

//Un tour de boucle par element du tableau
for(char lettre : derniereCombi )
{
    System.out.print(" " + lettre ); //Chaque element du tableau est récupérable avec la variable "lettre" et change à chaque tour de boucle
}

Veux tu que je te fasse une correction de ton algo de la façon dont je l'aurais fait, ou tu veux continuer à chercher ?


Titre: Re : Aide Java Mastermind
Posté par: KriKri Noob le 01 Mars 2013 à 18:07:39
Je n'ai pas trés envie de continuer à monopoliser ton temps ^^
donc pas besoin de me faire toute une correction !
Par contre j'aimerai savoir pourquoi mon jeux ne se relance pas  :O

j'ai fais les corrections que tu m'as donnée pour mes messages, et je vais faire celles pour mon algo.


merci  =D


Titre: Re : Aide Java Mastermind
Posté par: Opsse le 01 Mars 2013 à 18:14:50
Essaye en changeant le "while (J!=1);" par "while (true);"

Si je te propose de réécrire ton algo c'est que j'ai le temps de le faire et qu'il y a pas mal de truc qui ne sont pas très "propre" donc ça serait plus rapide de tout réécrire que tout énumérer ^^


Titre: Re : Aide Java Mastermind
Posté par: KriKri Noob le 01 Mars 2013 à 18:23:42
Merci de ta proposition ! J'accepte si mon programme reste personnel, si j'avais voulu copier quelqu'un j'aurai pris un des nombreux programme dispo sur internet ^^ ( ce qui n'est absolument pas mon but )
Pour le true c'est pas bete du tout  ! à la place de regarder si il est à 1 je regarde si il est différent de 0! :D


Titre: Re : Aide Java Mastermind
Posté par: Opsse le 01 Mars 2013 à 18:58:46
Bon dans ce cas tu as raison je vais plutôt te faire la liste des trucs qui me choque dans ton code :

Pour commencer les variables d'une lettre c'est juste illisible, il faut remonter en haut de ton algo toutes les 2 min pour voir à quoi correspond ta variable.
Par exemple "D = niveau de difficulté du jeux rentré par le joueur" tu appels ta variable "nivDifficulte" ou "niv_difficulte".

Quand tu as plusieurs variables du même type qui peuvent être regroupé met les dans un tableau, par exemple pour ta solution
Code:
 
char[] solution = new char[5];

for(int i = 0; i < solution.length; i++)
{
      solution[i] = (char)('A' + (int)(Math.random()*5));
}
Tu peux faire la même chose pour les valeurs entrée par le joueur, et lors de la vérification pour compter le nombre de bien placé et mal placé tu fais une boucle plutot que ton interminable suite de if else.


Quand tu récupères le niveau de difficulté c'est typiquement le cas où tu peux utiliser un switch à la place d'une suite de if else
Code:
System.out.println(" rentrer une difficulte (1, 2 ou 3)  ");
nivDifficulte = Saisie.lire_int();

switch(nivDifficulte )
{
      case 1 :
           nbCoup = 12;
           break;
      case 2 :
           nbCoup = 8;
           break;
      case 3 :
           nbCoup = 5;
           break;
      default:
            nbCoup = 8;
            break;
}

System.out.println(" Nombre d'essaie : " + nbCoup);


Voila en gros si tu corriges tout ca ton algo sera beaucoup plus lisible et facilement modifiable.
Si il y a des lignes que tu ne comprends pas dans ce que j'ai écris dis le moi.


Pour ce qui est de l'historique des coups joués tu peux les enregistrer dans double tableau : un tableau qui a une case par nombre de tour qui contient un tableau qui lui a une case par lettre mais c'est peut être un peu compliqué pour toi pour le moment.


Titre: Re : Aide Java Mastermind
Posté par: KriKri Noob le 01 Mars 2013 à 23:07:37
Merci beaucoup je vais essayé de bien comprendre ce que tu as fais, en tous cas sa a l'air plus simple ^^
J'ai un peut de mal avec les tableaux donc les doubles tableaux attendront  =D

Encore merci Opsse pour ton aide !

J'ai testé plusieurs manière de recommencer la partie mais je n'y arrive pas

Code:
        /* Demande de nouvelle partie en cas de partie gagnée */

             System.out.println(" Partie fini ");
             System.out.println(" REJOUER (tapez 1)");
             Rejouer=Saisie.lire_char();
             System.out.println(" REJOUER "+Rejouer);

             }
        /* Affichage d'une fenetre si le joueur atteint le nombre maximum de tentative */

             if (Compteur_tentative==Nb_coup)
             {
               JFrame frame = new JFrame(" Désolé!!");
             JLabel label = new JLabel(" Tu  n'as réussie à trouver la bonne combinaison !", JLabel.CENTER);
             frame.getContentPane().add(label);
             frame.setSize(300,100);
             frame.setVisible(true);
             
       /* Demande de nouvelle partie en cas de partie perdu */
            System.out.println(" Partie fini ");
            System.out.println(" REJOUER (tapez 1)");
            Rejouer=Saisie.lire_char();
              System.out.println(" REJOUER "+Rejouer);

            }

      /* Relance d'une nouvelle tentative tant que le nombre de tentative maximum n'est pas atteint ou que la partie n'est pas terminé */
          }
          while ((Compteur_tentative!=Nb_coup)||(Rejouer>0));

 }
      /* Relance d'une nouvelle partie si la partie en cour se termine ( gagné ou perdu ) */
while (Rejouer>0);


Code:
        /* Demande de nouvelle partie en cas de partie gagnée */

             System.out.println(" Partie fini ");
             System.out.println(" REJOUER (tapez 1)");
             Rejouer=Saisie.lire_char();
             if (Rejouer==1)
             {
             Nouvelle_partie=true;
             }
             System.out.println(" ll" +Nouvelle_partie);

             }
        /* Affichage d'une fenetre si le joueur atteint le nombre maximum de tentative */

             if (Compteur_tentative==Nb_coup)
             {
               JFrame frame = new JFrame(" Désolé!!");
             JLabel label = new JLabel(" Tu  n'as réussie à trouver la bonne combinaison !", JLabel.CENTER);
             frame.getContentPane().add(label);
             frame.setSize(300,100);
             frame.setVisible(true);
             
       /* Demande de nouvelle partie en cas de partie perdu */
            System.out.println(" Partie fini ");
            System.out.println(" REJOUER (tapez 1)");
            Rejouer=Saisie.lire_char();
            if (Rejouer==1)
             {
             Nouvelle_partie=true;
             }
            }

      /* Relance d'une nouvelle tentative tant que le nombre de tentative maximum n'est pas atteint ou que la partie n'est pas terminé */
          }
          while ((Compteur_tentative!=Nb_coup)||(Nouvelle_partie=true));

 }
      /* Relance d'une nouvelle partie si la partie en cour se termine ( gagné ou perdu ) */
while (Nouvelle_partie=true);





Titre: Re : Aide Java Mastermind
Posté par: Opsse le 02 Mars 2013 à 03:29:51
Je ne comprend pas pourquoi tu fais un lien entre le résultat de la partie et la nouvelle partie, les deux sont totalement indépendant.

Si j'ai bien compris ce que tu veux faire l'algo ressemble à ca :
Code:
do
.       *initialisation de la partie*
.
.       do
.       .
.       .          *boucle de jeu*
.       .
.       .
.       while(!partie_gagne et compteur_tentative < nb_coup)
.
.       *demander au joueur si il veut rejouer*
.
while(nouvelle_partie) //si c'est un boolean pas besoin de le comparer et encore moins avec un simple '='


PS : beaucoup mieux le nom de tes variables, mais par convention on ne commence pas un variable par une majuscule (ne me demande pas pourquoi ^^).


Titre: Re : Aide Java Mastermind
Posté par: KriKri Noob le 02 Mars 2013 à 11:57:03
Voila tout marche  =D =D =D
Merci de ton aide Opsse tu m'as été d'un très grand secours  :wink:

Code:
  char v, w, x, y, z, V, W, X, Y, Z;
  int Compteur_tentative, bien_place, mal_place, Niv_difficulte, Nb_coup, Rejouer;
  Boolean Nouvelle_partie, Partie_fini;


        System.out.println(" Bienvenue dans ma version de Mastermind ");

do
 {
    /* définition des variables à 0 */

  Nouvelle_partie=false;
  Compteur_tentative=0;
  Nb_coup=0;
  Partie_fini=false;
  Rejouer=0;

    /* définition aléatoire de la combinaison */

         v = (char)('A' + (int)(Math.random()*5));
         w = (char)('A' + (int)(Math.random()*5));
         x = (char)('A' + (int)(Math.random()*5));
         y = (char)('A' + (int)(Math.random()*5));
         z = (char)('A' + (int)(Math.random()*5));
         

         System.out.println(" Code secret = " +v+","+w+","+x+","+y+","+z);

    /* difficulté du jeux qui définie le nombre d'essaie */

    System.out.println(" rentrer une difficulte (1, 2 ou 3)  ");

            Niv_difficulte = Saisie.lire_int();

    switch(Niv_difficulte)
    {
      case 1 :
           Nb_coup = 12;
           break;
      case 2 :
           Nb_coup = 8;
           break;
      case 3 :
           Nb_coup = 5;
           break;
      default:
            Nb_coup = 8;
    }
    System.out.println(" Nombre de tentative : " +Nb_coup);
          do
          {
            /* définition des variables compteur bien_place et mal_place à 0 */

              bien_place=0;
              mal_place=0;

         /* incrément et affichage du compteur de tentative */

               Compteur_tentative++;
               System.out.println(" Tentative numero : " +Compteur_tentative);

           /* Le joueur entre sa combinaison qui s'affiche au fur et à mesure */

            System.out.print(" rentrer lettre 1 : ");
            do
            {
            V=Saisie.lire_char();
            V=java.lang.Character.toUpperCase(V);
            }
            while((V<'A')||(V>'F'));

                System.out.print(" rentrer lettre 2 : ");
                do
                {
                W=Saisie.lire_char();
                W=java.lang.Character.toUpperCase(W);
                }
                while((W<'A')||(W>'F'));

                   System.out.print(" rentrer lettre 3 : ");
                   do
                   {
                   X=Saisie.lire_char();
                   X=java.lang.Character.toUpperCase(X);
                   }
                   while((X<'A')||(X>'F'));

                      System.out.print(" rentrer lettre 4 : ");
                      do
                      {
                      Y=Saisie.lire_char();
                      Y=java.lang.Character.toUpperCase(Y);
                      }
                      while((Y<'A')||(Y>'F'));
         
                         System.out.print(" rentrer lettre 5 : ");
                         do
                         {
                         Z=Saisie.lire_char();
                         Z=java.lang.Character.toUpperCase(Z);
                         }
                         while((Z<'A')||(Z>'F'));

         /* affichage du code saisi */

                         System.out.println(" Code saisi :" +V+","+W+","+X+","+Y+","+Z);

        /* recherche dans la combinaison de lettre bien placé ou mal placé et incrément des compteurs */

               if (v==V)
               {
               bien_place++;
               }
                 else if ((v==W)||(v==X)||(v==Y)||(v==Z))
                 {
                 mal_place++;
                 }

                 if (w==W)
                  {
                   bien_place++;
                  }
                      else if ((w==V)||(w==X)||(w==Y)||(w==Z))
                        {
                        mal_place++;
                        }

                        if (x==X)
                         {
                           bien_place++;
                         }
                            else if ((x==W)||(x==V)||(x==Y)||(x==Z))
                             {
                             mal_place++;
                             }

                              if (y==Y)
                                {
                                 bien_place++;
                                }
                                  else if ((y==W)||(y==X)||(y==V)||(y==Z))
                                  {
                                  mal_place++;
                                  }

                                              if (z==Z)
                                               {
                                               bien_place++;
                                               }
                                                else if ((z==W)||(z==X)||(z==Y)||(z==V))
                                                {
                                                 mal_place++;
                                                }

          /* affichage des compteurs de lettre bien placé et mal placé */

               System.out.println(" Mal place : " +mal_place);
               System.out.println(" Bien place : " +bien_place);

         /* affichage d'une fenetre si le joueur trouve la bonne combinaison */

             if ((v==V)&(w==W)&(x==X)&(y==Y)&(z==Z))
             {
             JFrame frame = new JFrame(" BRAVO!!");
             JLabel label = new JLabel(" Tu as trouvé la bonne combinaison !", JLabel.CENTER);
             frame.getContentPane().add(label);
             frame.setSize(300,100);
             frame.setVisible(true);
             System.out.println(" Partie fini ");
             Partie_fini=true;
             }
        /* Affichage d'une fenetre si le joueur atteint le nombre maximum de tentative */

             if (Compteur_tentative==Nb_coup)
             {
               JFrame frame = new JFrame(" Désolé!!");
             JLabel label = new JLabel(" Tu  n'as réussie à trouver la bonne combinaison !", JLabel.CENTER);
             frame.getContentPane().add(label);
             frame.setSize(300,100);
             frame.setVisible(true);
             System.out.println(" Partie fini ");
             Partie_fini=true;
              }
            } 
  /* Relance d'une nouvelle tentative tant que la partie n'est pas terminé */

            while (!Partie_fini);

      /* Relance de la partie */

           System.out.println(" REJOUER (tapez 1)");
           Rejouer=Saisie.lire_char();
             if (Rejouer==1)
             {
             Nouvelle_partie=true;
             }

  }    /* Relance d'une nouvelle partie si la partie en cour se termine ( gagné ou perdu ) */
while (!Nouvelle_partie);


Titre: Re : Aide Java Mastermind
Posté par: Opsse le 02 Mars 2013 à 19:33:22
Pas de problème jeune padawan, que la force de Java soit avec toi xD