Bonjour à tous,


PROBLEME : une variable result se crée dans un if, j'aimerais acceder à cette variable dans le else...

Voici la méthode en question :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
@Override public void specialRoomEvent(int pResult)
            {
                int result;
 
                if(pResult == 0)
                {
 
                Random r = new Random();
 
 
                Random r2 = new Random();
                  int var1 = r.nextInt(3000); 
               int var2 = r2.nextInt(3000);
                result = var1 + var2;
 
               gui.println("QUESTION : Combien font :"+var1+"+"+var2+"?");
               }
 
 
 
                if(pResult != 0)
               {
 
                   if (result == pResult)
                   {
                  gui.println("Bonne réponse");
                   }
 
                  else
                  {
                    gui.println("Mauvaise réponse"); 
                  }   
 
                }
            } 
 
         };
Voici la classe qui appelle cette méthode

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public void execute(Player player, UserInterface gui)
       {
             int result;
            if(!hasSecondWord())
                {
                  result = 0;
                }
             else
             {
               String vResult = getSecondWord();
                result = Integer.parseInt(vResult);
                System.out.println("Notre choix"+result);
 
            }
 
            SpecialRoom room = (SpecialRoom)player.getCurrentRoom();
            room.specialRoomEvent(result);
 
        }
Probleme détaillé :

Donc quand getSecondWord est vide la méthode specialRoomEvent est appelé une premiere fois avec pResult = 0;
Donc dans specialRoomEvent on crée la variable result et on lui assigne une vlaeur (var1+var2).

Ensuite l'utilisateur en tapant une commande va envoyé un getSecondWord qui ne sera pas vide ! et donc pResult prendra sa valeur
specialRoomEvent est de nouveau appelé
pResult !=0
=> La seconde boucle se lance

notre pResult a la bonne valeur sauf que j'ai plus la valeur du result créé précedemment...