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 :
Normalement mon programme devrait rentrer dans le "if " mais il ne le fait pas.
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;
J'ai testé ce code :
Mon programme passe dans le if.
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);
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.
Partager