Jeu du pendu

Résolu
Bonjour,

Je fais un jeu du pendu avec des amis. Nous allons utiliser le Jframe d'eclipse pour l'interface. Moi je m'occupe de la méthode dejaEssaye qui regarde si la lettre a déja été saisi par l'utilisateur et retourne un boolean. Voixi mon code pour l'instant

public class JeuDuPendu { 

 

	private String chaineCacher; 
	private String chaineVue; 
	private int nbErreurs; 
	final private int MAX_ERREURS = 8; 
 

	String motsPossibles [] = {"impossible", "gentil", "monde", "chaise", 

			"maison", "decouverte", "poignarder", "nuage", "agenda", "soleil", "voyelle"}; 

    boolean [] utilises;
    
    char alphabet [] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
    		'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

	int numeroMotAleatoire = (int) (Math.random() * motsPossibles.length);
	private char lettre; 

	public JeuDuPendu (char lettre) {
		this.lettre = lettre;
		this.utilises = new boolean [alphabet.length];
		System.out.println(this.lettre);
		
		for (int j = 0; j < alphabet.length; j++) {
			utilises[j] = false;
			System.out.println(utilises[j]);
		}
	}

	boolean dejaEssaye (char lettre){  


		boolean deja = false;
		
			
			for (int i = 0; i < alphabet.length; i++) 
				
				
		if (lettre == alphabet[i] && utilises[i] == false) {
					utilises[i] = true;
					break;
				} else {
					deja = true;
				}


			//System.out.println(deja);
			return deja; 

	}
	
 

}


et mon main

public class test {

	public static void main(String[] args) {
		 boolean utilisationLettre;
		
		JeuDuPendu taLettre = new JeuDuPendu ('b');
		
		utilisationLettre = taLettre.dejaEssaye('m');
		utilisationLettre = taLettre.dejaEssaye('b');
		
	}
		
}


Quel est le problème ? Cela me donne juste des false.

Configuration: Windows / Chrome 70.0.3538.110

2 réponses

  1. J'ai réussit

    import javax.swing.JOptionPane;
    
    public class JeuDuPendu { 
    
     
    
    	private String chaineCacher; 
    	private String chaineVue; 
    	private int nbErreurs; 
    	private String lettresUtilises;
    	final private int MAX_ERREURS = 8; 
     
    
    	String motsPossibles [] = {"impossible", "gentil", "monde", "chaise", 
    
    			"maison", "decouverte", "poignarder", "nuage", "agenda", "soleil", "voyelle"}; 
    
        boolean [] utilises;
        
        char alphabet [] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
        		'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
    
    	int numeroMotAleatoire = (int) (Math.random() * motsPossibles.length);
    	private char lettre; 
    
    	public JeuDuPendu (char lettre) {
    		this.lettre = lettre;
    		this.utilises = new boolean [alphabet.length];
    		System.out.println(this.lettre);
    		
    		for (int j = 0; j < alphabet.length; j++) {
    			utilises[j] = false;
    			//System.out.println(utilises[j]);
    		}
    	}
    
    	
    		//Méthode dejaEssayer
    		boolean dejaEssaye (char lettre){  
    
    
    		boolean deja = false;
    		
    			
    			for (int i = 0; i < alphabet.length; i++) 
    				
    				
    		if (lettre == alphabet[i] && utilises[i] == false) {
    				
    					utilises[i] = true;
    					break;
    					
    				} else if (lettre == alphabet[i] && utilises[i] == true) {
    					deja = true;
    					break;
    				}
    					
    			if (deja == true) {
    				JOptionPane.showMessageDialog(null, "Vous avez déjà entré la lettre " + lettre);
    		}
    
    			System.out.println(deja);
    			return deja;
    			
    
    	}
    	
     
    
    }
    
    1. En fait mon System.out.println(deja) me retourne true a chaque fois