juancho2786
Messages postés39Date d'inscriptionmardi 5 juillet 2005StatutMembreDernière intervention29 octobre 2008
-
1 avril 2006 à 23:21
cs_nomad56
Messages postés54Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 avril 2006
-
2 avril 2006 à 03:20
Bonsoir a tous. Je suis débutant en Java et j'ai essayé de créer le jeu du pendu ( de la façon la plus simple ). Seulement j'ai un petit problème en ce qui concerne le compteur des erreurs. Je veux qu'à la quatrième erreur (mauvaise lettre), le jeu s'arrête. Voici mon code source. Pouvez-vous me dire pourquoi ça ne marche pas comme je veux?
Merci d'avance...
public class THE_PENDU {
public static void main(String[] args) {
String Tab_Mots[] ={"maison","voiture","paysage"};
String Mot_A_Deviner;
char Tab_Mot_A_Deviner[];
char lettre_saisie;
int Nb_Aleatoire ;
int Nb_Mots;
int longueur_Mot_A_Deviner;
int cpt=0,cpt2=0;
boolean lettre_correcte= false;
int erreur=4;
Nb_Mots=Tab_Mots.length; // La longueur du tableau Tab_Mots et donc le nbr de mot
Nb_Aleatoire=(int)(Math.random()*Nb_Mots); // cherche un nbr aleatoire compris entre 0 et le nbr de mots
Mot_A_Deviner=Tab_Mots[Nb_Aleatoire]; // on met dans Mot_A_Deviner le mot a deviner
longueur_Mot_A_Deviner=Mot_A_Deviner.length(); // On prend la longueur du mot a deviner
Tab_Mot_A_Deviner= new char[longueur_Mot_A_Deviner]; //On crée un tableau de caractère de même taille que la longueur du mot a chercher
//ENTETE
System.out.println("*********************************");
System.out.println("*Bienvenue dans le jeu du pendu!*");
System.out.println("*********************************");
System.out.println("");
cs_nomad56
Messages postés54Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 avril 20061 2 avril 2006 à 03:20
ben , comme on a pas Lire.c() et que j'avais pas envie de me casser la tête sur ton code, et que j'avais rien de mieu à faire :o) ,
je l'ai entièrement refait le pendu .... et si tu es débutant je te conseille de prendre exemple sur mon code ... (que je met dans le prochain post, à la suite)
bon je dis pas que je suis un pro non plus mais bon ... et je te conseil aussi de respecter la nomenclature java
cad:
variables en minuscules mais majuscule pour préciser le début d'un nouveau mot ex: "maPremiereVariable" ou "ma"
une class commence par une majuscule mais le reste est en min ex : "Client" ou "ClientPotentiel"
une constante est en majuscule et un "_" pour préciser le début d'un nouveau mot ex: "MAX" ou "ESSAIS_MAXIMUM"
etc ... c assez important de prendre l'habitude dès le début pour faciliter la compréhension des codes des autres et même du tiens .. mais ca reste un conseil ...
voila j'espère que mon code t'aidera à corriger le tient / avancer dans ton projet
bonne chance et ++
String motADeviner = tab_dico[(int) configuredRandom]; // le cast (int)
// permet de
// prendre que
// la partie
// entière soit
// (0 -> 2)
String motEnCreation = "";
int MAX_ERREUR = 5;
int nbChances = MAX_ERREUR;
boolean victoire = false;
char lettreSaisie;
for (int i = 0; i < motADeviner.length(); i++) {
motEnCreation += "-";
}
System.out.println("*********************************");
System.out.println("*Bienvenue dans le jeu du pendu!*");
System.out.println("*********************************");
System.out.println("");
// System.err.println("mot à deviner:"+motADeviner);
System.out.println("Vous avez " + MAX_ERREUR
+ " chances de découvrir le mot caché");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (nbChances > 0 && !victoire) {
System.out.println(" " + motEnCreation);
System.out.println("tapez une lettre puis validez ( " + nbChances
+ " chances ):");
try {
lettreSaisie = br.readLine().charAt(0);
// System.err.println("lettreSaisie:"+lettreSaisie);
if (motADeviner.contains(new String("" + lettreSaisie))) {
System.out.println("Lettre trouvée !! :" + lettreSaisie);
String temp = motEnCreation;
motEnCreation = "";
for (int i = 0; i < motADeviner.length(); i++) {
if (motADeviner.charAt(i) == lettreSaisie) {
motEnCreation += lettreSaisie;
} else {
motEnCreation += temp.charAt(i);
}
}
} else {
System.out
.println("Le mot caché ne contient pas la lettre :"
+ lettreSaisie);
nbChances--;
}
// test de victoire
if (motEnCreation.equalsIgnoreCase(motADeviner)) {
System.out
.println("Félicitation, vous avez découvert le mot caché "
+ motADeviner + " !!");
victoire = true;
}
} catch (IOException e) {
e.printStackTrace();
System.err
.println("Une erreur c'est produite. l'application va se terminer");
System.exit(-1);
} catch (StringIndexOutOfBoundsException e) {
}
}
if (!victoire && nbChances <= 0) {
System.out.println("Désolé, vous avez perdu...");
System.out.println("Le mot recherché était : " + motADeviner);
}