Fenêtre jeux du pendu

Fermé
skyllers Messages postés 28 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 16 mai 2015 - 16 mai 2015 à 22:50
 Utilisateur anonyme - 20 mai 2015 à 12:36
Bonjour à tous,
J'essaye de créer un jeux du pendu en java mais je n'arrive pas à afficher ma class principale dans une fenêtre, mon code:
Ma fenêtre:
import javax.swing.JFrame;
 
public class Fenetre extends JFrame {
  public Fenetre(){
    this.setTitle("Ma première fenêtre Java");
    this.setSize(400, 500);
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);             
    this.setVisible(true);
  }
}


Mon jeux:

import java.util.Scanner;
public class Jeudupendu {	
Fenetre fen = new Fenetre();
    /**
     * @param args
     */
    public static void main(String[] args) {
    	
        // TODO Auto-generated method stub
        char mot[] = {'i','n','s','t','r','u','m','e','n','t'};
        char mot2[] = new char[mot.length];
        char caractere = ' ';
        Scanner lettre = new Scanner(System.in);
        while (mot2[0] != mot[0] || mot2[1] != mot[1] || mot2[2] != mot[2] || mot2[3] != mot[3] || mot2[4] != mot[4] || mot2[5] != mot[5] || mot2[6] != mot[6] || mot2[7] != mot[7] || mot2[8] != mot[8] || mot2[9] != mot[9])
        {
          System.out.println("Entrez une lettre:");
          caractere = lettre.next().charAt(0);
          for (int i=0;i < mot.length;i++)
          {
             if (caractere == mot[i])
             {
                 System.out.println(mot[i]);
                 mot2[i] = mot[i];
             }
             else
             {
                 System.out.println("*");
             }
          }
         }
         System.out.println("bravo! Le mot était: " + mot2[0] + mot2[1] + mot2[2] + mot2[3] + mot2[4] + mot2[5] + mot2[6] + mot2[7] + mot2[8] + mot2[9]);
          
    }
    
}


Merci pour l'aide les amis ; )
A voir également:

1 réponse

Utilisateur anonyme
Modifié le 4 mai 2023 à 10:35

Bonjour,

Déjà tu peux pas vraiment utiliser System.out.println(); et Scanner(System.in); dans une JFrame.... regarde du cote de JTextArea/JLabel pour afficher le texte, et JTextField pour entrer du texte...

Ensuite ton code est très compliqué... le code ne fonctionne que pour des mots ayant une certaine taille...

Je l'ai modifié pour que ça ressemble plus à un vrai pendu en le simplifiant... je te laisse faire l'adaptation pour ta JFrame...
 

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class Jeudupendu {
 
 static Fenetre fen;

 public static int occurence_mot(char c, String mot){
  int occurence = 0;
  for(char c2 : mot.toCharArray()){
   if(c == c2) occurence++;
  }
  return occurence;
 }
 
 public static void main(String[] args) {
  init();
 }
 
 public static void init(){
  fen = new Fenetre();
  
        String mot = "instrument";
        
        List<Character> lettres_tappees = new LinkedList<Character>();
        Scanner lettre = new Scanner(System.in);
        int letters_found = 0;
        int vies = 10;
        
        while (letters_found != mot.length()) {
           System.out.println("Entrez une lettre: (vies restantes: " + vies + ")");
           char caractere = lettre.next().charAt(0);
           if(lettres_tappees.contains(caractere)){
            System.out.println("Vous avez deja tappé cette lettre...");
           } else {
            lettres_tappees.add(caractere);
            if(mot.contains(caractere + "")){
             letters_found = letters_found + occurence_mot(caractere, mot);
            } else {
             if(vies == 0){
              break;
             } else {
              vies--;
             }
            }
            String to_print = "";
            for(char c : mot.toCharArray()){
             if(lettres_tappees.contains(c)){
              to_print = to_print + c;
             } else {
              to_print = to_print + "*";
             }
            }
            System.out.println(to_print);
          }
          System.out.println();
       }
       if(letters_found == mot.length()) System.out.println("Bravo! Le mot était: '" + mot + "'");
       else System.err.println("Vous avez perdu !");
       lettre.close();
 }
}


En éspérant avoir aider :)

0