Bonjour,

Pour mon projet, j'ai besoin de recuperer un "block" a une position donnée et vérifier son Type.

J'ai donc fais ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
if (pos < this->map.size())                                                                         
    {                                                                                                 
      Block *tmp = map[pos];                                                                          
      if (tmp->getTypeBlock() != EMPTY && tmp->getTypeBlock() != EXPLOSION)                           
        return false;                                                                                 
    }                                                                                                 
  return true;
Normalement mon programme devrait rentrer dans le "if " mais il ne le fait pas.

J'ai testé ce code :

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
 
std::vector<Block *>::iterator it = this->map.begin(); 
 
 while (it != this->map.end())                                                                       
    {                                                                                                 
      type = (*it)->getTypeBlock();                                                                                                                      
      if (type != EMPTY && type != EXPLOSION)                                                         
        {                                                                                             
          block_x = (*it)->getX();                                                                    
          block_y = (*it)->getY();                                                                    
          if (block_y == y && block_x == x)                                                           
            break;                                                                                    
        }                                                                                             
      ++it;                                                                                           
    }                                                                                           
  return (true);
Mon programme passe dans le if.

J'ai donc print les positions en x et en y de mon "block" pour les deux versions du code, se sont les mêmes.

J'ai donc pour deux versions le même block mais avec un "Type" différent en fonction du type d'approche que j'ai (itérateurs et []).

Je ne vois pas d'ou ça peut venir... Une idée ?

Merci d'avance.