Skip to content

Commit bbd97d6

Browse files
Allan BarrielleAllan Barrielle
authored andcommitted
kill to large path, no point to keep it
1 parent 5ef7f7b commit bbd97d6

File tree

4 files changed

+67
-10
lines changed

4 files changed

+67
-10
lines changed

map/tst_sansbig

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
10
2+
##start
3+
1 6 9
4+
2 4 7
5+
3 5 6
6+
4 5 6
7+
5 4 5
8+
6 4 7
9+
7 5 6
10+
8 5 6
11+
9 4 5
12+
11 4 5
13+
12 4 7
14+
13 5 6
15+
14 5 6
16+
15 4 5
17+
##end
18+
10 4 5
19+
1-11
20+
1-8
21+
2-3
22+
3-6
23+
3-4
24+
6-7
25+
4-7
26+
4-5
27+
5-10
28+
8-9
29+
9-10
30+
11-12
31+
12-13
32+
13-14
33+
13-15
34+
12-10

srcs/print.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ void print_path(t_path *path)
1818
return ;
1919
while (path)
2020
{
21-
ft_printf("[%s-%d]", path->name, path->size);
21+
// ft_printf("[%s-%d]", path->name, path->size);
22+
ft_printf("%s", path->name);
2223
if (path->next)
2324
ft_printf("->");
2425
path = path->next;

srcs/send.c

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ void print_ants(int bc, int ants, char *name)
5151
ft_printf("L%d-%s ", ants, name);
5252
ft_putstr(RESET);
5353
}
54-
void sort_lists(t_path **p, int max_path)
54+
void sort_lists(t_path **p, int *max_path)
5555
{
5656
int i;
5757
t_path **begin;
@@ -61,9 +61,9 @@ void sort_lists(t_path **p, int max_path)
6161
i = 0;
6262
begin = p;
6363
tmp = NULL;
64-
while(i < max_path)
64+
while(i < *(max_path))
6565
{
66-
if (i + 1 < max_path && (p[i]->size > p[i + 1]->size))
66+
if (i + 1 < *(max_path) && (p[i]->size > p[i + 1]->size))
6767
{
6868
tmp = p[i];
6969
p[i] = p[i + 1];
@@ -72,6 +72,21 @@ void sort_lists(t_path **p, int max_path)
7272
}
7373
i++;
7474
}
75+
i = 0;
76+
p = begin;
77+
while(i < *(max_path))
78+
{
79+
if (i + 1 < *(max_path) && (p[i + 1]->size > (p[0]->size + 2)))
80+
{
81+
*(max_path) = i + 1;
82+
p[i + 1] = NULL;
83+
p = begin;
84+
return ;
85+
// free(p[i + 1]);
86+
// i = 0;
87+
}
88+
i++;
89+
}
7590
p = begin;
7691
}
7792
void handles_path(t_path **p, t_ant *a, int max_path)
@@ -91,11 +106,18 @@ void handles_path(t_path **p, t_ant *a, int max_path)
91106
while(i < max_path)
92107
{
93108
reverse_list(&p[i],a);
94-
tmp[i] = p[i];
109+
// tmp[i] = p[i];
95110
i++;
96111
}
97112
if (max_path > 1)
98-
sort_lists(p,max_path);
113+
sort_lists(p,&max_path);
114+
i = 0;
115+
ft_printf("\n\n");
116+
while(i <= max_path)
117+
{
118+
tmp[i] = p[i];
119+
i++;
120+
}
99121
i = 0;
100122
while(end <= a->ant)
101123
{
@@ -107,7 +129,7 @@ void handles_path(t_path **p, t_ant *a, int max_path)
107129
{
108130
end++;
109131
p[i]->ants = end;
110-
ft_printf("[1]");
132+
// ft_printf("[1]");
111133
print_ants(a->bonus_color, p[i]->ants,p[i]->name);
112134
if (end == a->ant)
113135
return ;
@@ -118,14 +140,14 @@ void handles_path(t_path **p, t_ant *a, int max_path)
118140
start--;
119141
ants++;
120142
p[i]->ants = ants;
121-
ft_printf("[2]");
143+
// ft_printf("[2]");
122144
print_ants(a->bonus_color, p[i]->ants,p[i]->name);
123145
}
124146
else if (p[i]->next && p[i]->next->ants > 0 && p[i]->next->start != 1)
125147
{
126148
p[i]->ants = p[i]->next->ants;
127149
p[i]->next->ants = 0;
128-
ft_printf("[3]");
150+
// ft_printf("[3]");
129151
print_ants(a->bonus_color, p[i]->ants,p[i]->name);
130152
}
131153
p[i] = p[i]->next;

tests/big

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
1
1+
100
22
##start
33
start 0 1
44
##end

0 commit comments

Comments
 (0)