ajout de l'effacement selectif lors de l'opti, pas ouf ouf

This commit is contained in:
pia Lepetit
2019-06-03 08:16:18 +02:00
parent f1471562f3
commit 602ebf070d
81 changed files with 2615 additions and 45 deletions

View File

@@ -23,12 +23,14 @@ int check_tetri_memory(t_fillist *list, int pos)
tetri = list;
mask = 1 << ((pos % 32) - 1);
if (!tetri->same && !tetri->memory)
return(1);
if (tetri->same)
{
if (!(tetri->same->memory[pos / 32] & mask))
return (tetri->same->memory[pos / 32] |= mask);
}
else
else if (tetri->memory)
{
if (!(tetri->memory[pos / 32] & mask))
return (tetri->memory[pos / 32] |= mask);
@@ -42,6 +44,8 @@ int check_tetri_memory(t_fillist *list, int pos)
int compare_tetri(t_fillist *tetri_a, t_fillist *tetri_b)
{
if (tetri_a->same)
return (0);
if (tetri_a->tetribit != tetri_b->tetribit)
return (0);
if (tetri_a->width != tetri_b->width)
@@ -79,20 +83,22 @@ int check_same_tetri(t_fillist *list, int num)
curr_tetri = clean_list_memory(list, list);
while (curr_tetri != NULL)
{
i = 0;
if (!(curr_tetri->memory =
(unsigned int *)malloc(sizeof(*curr_tetri->memory) * num)))
return (0);
while (i < num)
curr_tetri->memory[i++] = 0;
next_tetri = curr_tetri->next;
while (next_tetri != NULL)
{
if (compare_tetri(curr_tetri, next_tetri))
if (next_tetri->same == NULL)
next_tetri->same = curr_tetri;
{
i = 0;
if (!(curr_tetri->memory =
(unsigned int *)malloc(sizeof(*curr_tetri->memory) * num)))
return (0);
while (i < num)
curr_tetri->memory[i++] = 0;
next_tetri->same = curr_tetri;
}
next_tetri = next_tetri->next;
}
curr_tetri->position = 0;
curr_tetri->total_num = num;
curr_tetri = curr_tetri->next;
}