Problème avec un programme événementiel (NETBEANS)

Scott_2000 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Scott_2000 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis en terminale S SI avec spécialité ISN.
Pour la fin de l'année je dois faire un projet.

J'ai choisi de faire un petit jeu semblable au "Dobble", si vous connaissez.
Je fais tout le programme sur le logiciel NETBEANS.
Venons maintenant au sujet.

Mon programme fait les actions suivantes :
- Il créé des Labels, puis créé des valeurs aléatoire qu'il associe à chaque Label (grâce à des switchs). Chaque valeur donne une image aléatoire à chaque Label.
- Ensuite le programme fait en sorte que toutes les images soient différentes, sauf 2 qui sont identiques (ainsi le joueur doit retrouver lesquelles sont identiques).

Jusque là tout va bien, seulement voila le hic.
Je n'arrive pas à faire en sorte que dés que le joueur clique sur l'une des deux images identiques alors il passe au niveau suivant.

J'ai déjà essayé de prendre une valeur que j'appelle similaire qui est égale à celle des valeurs des deux images identiques puis de la réutiliser dans un "mouseReleased". Seulement la valeur similaire fait parti d'un sous programme et NETBEANS refuse de l'utiliser dans le "mouseReleased", il dit qu'elles ne sont pas définies.

Pouvez vous m'aider à trouver une solution ?

Merci

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Il faudrait voir comment tu as commencé ton programme pour l'adapter comme tu veux...
0
Scott_2000 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour KX,

Mon programme commence comme ceci :
Il initialise le Frame puis les labels, ensuite il lance le sous-programme (qui fait en sorte que les images soient aléatoires).
Et à la fin, il créé le mouse released.

Voilà le début de mon programme :

public NewJFrame() {
        initComponents();
        getContentPane().setBackground(Color.WHITE);
        spawn();
        jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                jLabel1MouseReleased(evt);
            }
        });

Le initComponents a était crée par NETBEANS (un petit bazar) :

private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Pikodu");
        setBackground(new java.awt.Color(0, 0, 0));
        setName("frame"); // NOI18N
        setSize(new java.awt.Dimension(1480, 10000));

        jLabel1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        jLabel1.setSize(new java.awt.Dimension(40, 40));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(35, 35, 35)
                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 223, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(89, 89, 89)
                .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 217, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(29, 29, 29)
                .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(112, 112, 112))
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(33, 33, 33)
                .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 270, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(103, 103, 103)
                .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 243, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 214, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(20, 20, 20)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 268, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 260, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(82, 82, 82)
                        .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(43, 43, 43)
                        .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(81, 81, 81)
                        .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(6, 6, 6)
                        .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 194, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(46, 46, 46)
                        .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(9105, Short.MAX_VALUE))
        );

        pack();
    }

J'espère que mon explication te va.
En tout cas merci de ton aide.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
L'interface graphique je m'en moque un peu, tu veux qu'on t'aide sur la partie de sélection de deux images identiques, mais on n'a pas le code qui correspond.
Mon programme fait les actions suivantes :
- Il créé des Labels, puis créé des valeurs aléatoire qu'il associe à chaque Label (grâce à des switchs). Chaque valeur donne une image aléatoire à chaque Label.
- Ensuite le programme fait en sorte que toutes les images soient différentes, sauf 2 qui sont identiques (ainsi le joueur doit retrouver lesquelles sont identiques).
Quel est le code qui te permet de faire ça, c'est sur celui là qu'il va falloir travailler !
0
Scott_2000 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Je n'ai pas pu envoyer de réponse hier et ce matin.

Ce que j'aimerais c'est que quand je dis valeur 1=valeur2 (en gras dans le p par exemple qu'elles soient égales à une valeur S que je puisse utiliser dans le mousereleased.
Par exemple je clique sur l'image 1, si la valeur1 (valeur de l'image 1) est égale à S alors relancer le sous-programme, sinon ne rien faire (pour l'instant).
Voici une partie de mon sous programme (car c'est beaucoup de répétitions) :

int spawn(){
           
        for(int n=0 ;n<1;){ 
        Random r = new Random();
        //carte 1
        int valeur1 = 1+r.nextInt(10 - 0);
        int valeur2 = 1+r.nextInt(10 - 0);
        int valeur3 = 1+r.nextInt(10 - 0);
        int valeur4 = 1+r.nextInt(10 - 0);
        //carte 2
        int valeur5 = 1+r.nextInt(10 - 0);
        int valeur6 = 1+r.nextInt(10 - 0);
        int valeur7 = 1+r.nextInt(10 - 0);
        int valeur8 = 1+r.nextInt(10 - 0);
        
        if(valeur1!=valeur2 && valeur1!=valeur3 && valeur1!=valeur4 && valeur1!=valeur5 && valeur1!=valeur6 && valeur1!=valeur7 && valeur1!=valeur8 && valeur2!=valeur3 && valeur2!=valeur4 && valeur2!=valeur5 && valeur2!=valeur6 && valeur2!=valeur7 && valeur2!=valeur8 && valeur3!=valeur4 && valeur3!=valeur5 && valeur3!=valeur6 && valeur3!=valeur7 && valeur3!=valeur8 && valeur4!=valeur5 && valeur4!=valeur6 && valeur4!=valeur7 && valeur4!=valeur8 && valeur5!=valeur6 && valeur5!=valeur7 && valeur5!=valeur8 && valeur6!=valeur7 && valeur6!=valeur8 && valeur7!=valeur8){
            n++;     
        }
        else{
            }
        int similaire = 1+r.nextInt(56 - 0);
        switch (similaire){
            case 1:
                <bold>valeur1=valeur2;</bold>
                break;
            case 2:
                valeur1=valeur3;
                break;
            case 3:
                valeur1=valeur4;
                break;
            
switch (valeur1){
            case 1:
                jLabel1.setIcon(new javax.swing.ImageIcon("/Users/Julienmazzia1/NetBeansProjects/Image Pikodu/src/image1/airliner-146590_1280.png"));
                break;
            case 2:
                jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image3/animal-160760_1280.png"))); // NOI18N
                break;
            case 3:
                jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image5/elk-35579_1280.png"))); // NOI18N
                break;
            case 4:
                jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image9/money-576571_1280.png"))); // NOI18N
                break;
            case 5:
            jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image2/jeep-309501_1280.png")));
                break;
            case 6:
                jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image_10/police-30120_1280.png")));
                break;
            case 7:
                jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image1/gun-307956_1280.png")));
                break;
            case 8 :
                jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image8/car-29645_1280.png"))); // NOI18N
                break;
            case 9 :
                jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image7/horse-159512_1280.png")));
                break;
            case 10 :
                jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image6/fish-576515_1280.png")));
                break;
            
        }
}
0