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 38
|
void check_the_ant_room(t_ant *ant, t_laby *laby)
{
t_room *tmp; /*je crée un pointeur temporaire pour me balader dans ma liste sans en changer le pointeur initial */
tmp = ant->room_possible;
while (tmp != NULL)
{
/* c'est ici que ça foire, la fct is_it_in prend un char* name, et un t_room alrdy_pass */
/* a ce stade, alrdy_pass est composé ainsi : NULL<-struct->NULL */
if (is_it_in(tmp->name, ant->alrdy_pass) == TRUE)
destroy_my_room(&tmp);
else if (search_solution(tmp, laby, laby->pos_end, ant->alrdy_pass)
== FALSE)
destroy_my_room(&tmp);
else
tmp = tmp->next;
}
}
/*Entrée dans is_it_in*/
t_bool is_it_in(char *name, t_room *room)
{
t_room *temp;
temp = room;
/* techniquement, cette boucle ne devrait pas s'effectuer, pourtant elle trouve une structure pointée par prev, une structure fonctionnelle et remplie mais qui ne devrait pas être ici*/
while (temp->prev != NULL)
temp = temp->prev;
while (temp != NULL)
{
if (my_strcmp(name, temp->name) == TRUE)
return (TRUE);
temp = temp->next;
}
return (FALSE);
} |
Partager