Problème de tirets pendu java

Résolu/Fermé
bapt44 - 31 mars 2015 à 09:08
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 31 mars 2015 à 20:31
Bonjour à tous,

Voilà, je vous explique mon problème.
J'ai fais un pendu pour un exercice que je dois rendre prochainement.
Le pendu fonctionne très bien hors impossible d'avoir le bon nombre de tirets correspondant au nombre de caractères à chercher dans la librairie.

Le nombre de tirets correspond au nombre de caractères dans le plus grand mot c'est à dire 14 et ça pose problème :/

Avez vous une idée ?
Merci d'avance pour vos réponses

Voici les fichiers zippés :
http://sendbox.fr/pro/nrome2q4ygux/Pendu.zip.html





A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
31 mars 2015 à 20:31
Bonjour,

"Voici les fichiers zippés"
Aucun intérêt de mettre ton code zippé, c'est particulièrement agaçant de devoir aller sur un autre site, obliger d'attendre pour récupérer un fichier, le dézipper et se rendre compte au final qu'il n'y a que deux petites classes de 70 lignes, ce qui se copie colle aisément sur le forum.

D'ailleurs les voilà :

import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Hangman2 {

    public static void main(String[] args) {
        Scanner Input = new Scanner(System.in);

        String radmWord = String.copyValueOf (MOOC.motAuSort());

        int radmNumber = (int) Math.ceil(Math.random() * radmWord);
        int counter = 10;

        char[] genRadmLetter = radmWord.toCharArray();
        char[] genRadmLetter2 = radmWord.toCharArray();
        for (int x = 0; x < genRadmLetter.length; x++) {
            genRadmLetter[x] = '-';
        }

        Set<Character> guesses = new HashSet<Character>();
        do {

            System.out.println("Entrez une lettre");

            System.out.println(String.valueOf(genRadmLetter));
            char guessedLetter = Input.next().charAt(0);

            if (guesses.contains(guessedLetter)) {

                System.out.println("Vous avez déjà utilisé cette lettre");

            } else {

                guesses.add(guessedLetter);
                boolean found = false;
               for (int rw = 0; rw < genRadmLetter2.length; rw++) {

                    if (genRadmLetter2[rw] == guessedLetter) {

                        genRadmLetter[rw] = guessedLetter;
                        found = true;

                    }

                }

                if (!found) {
                    System.out.println("Mauvaise lettre, merci de réessayer");
                    counter = counter - 1;
                    System.out.println("Tentatives restantes: " + counter);
                }

            }

            boolean result = Arrays.equals(genRadmLetter, genRadmLetter2);
            if (result == true) {
                break;
            }

            if (counter == 0) {
                break;
            }

        } while (counter != 0);

        if (counter == 0) {
            System.out.println("Vous avez perdu le mot était: " + radmWord);
        } else {
            System.out.println("Bravo");
            System.out.println("Il vous restait " + counter +" tentatives");
        }

    }

}

public class MOOC{    
    private static java.util.Scanner scan;
    private static String[] listeMots =
    {"MATERIAU      ", "POLITIQUE     ", "FAVORISER     ", "EXTERIEUR     ", 
     "FINANCER      ", "TRADITION     ", "CONSULTER     ", "POSSIBILITE   ", 
     "POURCENTAGE   ", "FAVORABLE     ", "ORDINATEUR    ", "FONCTIONNER   ", 
     "EXPANSION     ", "LOGICIEL      ", "CONTINUE      ", "LIQUIDATION   ", 
     "BOURSIER      ", "RACHETER      ", "ALIMENTAIRE   ", 
     "ALLEMANDE     ", "INVESTISSEUR  ", "OBLIGATOIRE   ", 
     "UTILISATION   ", "IMMEUBLE      ", "NECESSAIRE    ", 
     "AUGMENTER     ", "BENEFICIER    ", "TRAVAILLER    ", "DIRECTIVE     ", 
     "GENERALE      ", "CONSOLIDATION ", "CORRECTION    ", 
     "INTERVENTION  ", "COMPETITIVITE ", "FONCTION      ", 
     "MINISTRE      ", "PERMANENTE    ", "NUMERIQUE     ", "CROISSANCE    ", 
     "CONSTRUCTEUR  ", "MANAGEMENT    ", "EVIDEMMENT    ", "INSTITUTION   ", 
     "MOUVEMENT     ", "PUREMENT      ", "NATIONAL      ", "INITIATIVE    ", 
     "ENORMEMENT    ", "RETROUVER     ", "INVESTISSEUR  ", "ACCUEILLIR    ", 
     "PERSPECTIVE   ", "STRATEGIQUE   ", "COMPARAISON   ", "PREFERENCE    ", 
     "PRODUCTEUR    ", "CHIMIQUE      ", "RISQUER       ", 
     "TENDANCE      ", "SPECIALISTE   ", "ATTENTION     ", 
     "SPECIALISEE   ", "FONCTIONNEMENT", "LARGEMENT     ", "BEAUCOUP      ", 
     "GLOBALEMENT   ", "RECUPERER     ", "VIOLENCE      ", "PREVENTION    ", 
     "CONSTATER     ", "CONDUITE      ", "CONSACRER     ", "BENEFICE      ", 
     "ASSURANCE     ", "ASSUREUR      ", "JUSTIFIE      ", "UNIVERSITE    ", 
     "FONDATION     ", "RESPECTER     ", "SPECIALISER   ", "CONCLUSION    ", 
     "NOTATION      "};
    static{
	scan=new java.util.Scanner(System.in);
	scan.useLocale(java.util.Locale.ENGLISH);
    }
    public static double readDouble(){
	double res = scan.nextDouble();
	scan.nextLine();
	return res;
    }
    public static void pause(double n){
	try{
	    Thread.sleep((long)(n* 1000));
	}catch(InterruptedException ie){
	    throw new RuntimeException();
	}
    }
    public static String readString(){
	String res = scan.nextLine();
	return res;
    }
    public static int readInt(){
	int res = scan.nextInt();
	scan.nextLine();
	return res;
    }
     public static boolean readBoolean(){
	boolean res = scan.nextBoolean();
	scan.nextLine();
	return res;
    }
    public static boolean isDigit(char c){
	return Character.isDigit(c);
    }
    public static char readChar(){
	char res =  scan.nextLine().charAt(0);
   	return res;
    }
    public static int auSort(int min, int max){
	    return (int) (Math.random()*(max-min+1)+min);
   }

    public static char[] motAuSort(){
	return listeMots[(int) (Math.random()*(listeMots.length+1))].toCharArray();
    }
}

Quant à ton problème c'est normal qu'il t'affiche toujours 14 tirets, vu que tous tes mots ont 14 caractères... Quelle idée de mettre des espaces à la fin de chaque mot ? Ça ne sert à rien, et ça provoque ton erreur. Donc enlèves les et le reste fonctionnera.
0