Voir les messages
|
Pages: [1]
|
1
|
Général / Général / Re : Aide Java Mastermind
|
le: 02 Mars 2013 à 11:57:03
|
Voila tout marche  Merci de ton aide Opsse tu m'as été d'un très grand secours  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);
|
|
|
2
|
Général / Général / Re : Aide Java Mastermind
|
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  Encore merci Opsse pour ton aide ! J'ai testé plusieurs manière de recommencer la partie mais je n'y arrive pas /* 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);
/* 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);
|
|
|
3
|
Général / Général / Re : Aide Java Mastermind
|
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! 
|
|
|
4
|
Général / Général / Re : Aide Java Mastermind
|
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 j'ai fais les corrections que tu m'as donnée pour mes messages, et je vais faire celles pour mon algo. merci 
|
|
|
5
|
Général / Général / Re : Aide Java Mastermind
|
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  , 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
|
|
|
6
|
Général / Général / Re : Aide Java Mastermind
|
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  ) { /* 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]
} }
|
|
|
7
|
Général / Général / Re : Aide Java Mastermind
|
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 
|
|
|
9
|
Général / Général / Re : Aide Java Mastermind
|
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
|
|
|
10
|
Général / Général / Aide Java Mastermind
|
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
|
|
|
|