testing things
thinking of how to display the ants moving and optimise by moving at least one on each path
This commit is contained in:
189
srcs/test.c
189
srcs/test.c
@@ -6,20 +6,61 @@
|
||||
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2019/03/28 11:37:06 by tmaze #+# #+# */
|
||||
/* Updated: 2019/04/05 13:59:02 by tmaze ### ########.fr */
|
||||
/* Updated: 2019/04/05 17:43:06 by tmaze ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "lem_in.h"
|
||||
|
||||
#define NB_NODES 4
|
||||
#define NB_NODES 8
|
||||
#define NB_ANTS 20
|
||||
|
||||
int add_link(t_lmdata *data, int n1, int n2)
|
||||
int add_link(t_lmdata *data, int n1, int n2)
|
||||
{
|
||||
return (lst_indadd(&(data->adj[n1]), n2) && lst_indadd(&(data->adj[n2]), n1));
|
||||
}
|
||||
|
||||
int main(void)
|
||||
t_node *get_node(t_lmdata *data, int index)
|
||||
{
|
||||
t_node *it;
|
||||
|
||||
it = data->node_data;
|
||||
while (it && it->index != index)
|
||||
it = it->next;
|
||||
return (it);
|
||||
}
|
||||
|
||||
void push_ants(t_lmdata *data, t_ind **paths, int nb_paths, int nb_ants)
|
||||
{
|
||||
t_ind *its[nb_path];
|
||||
int ant_p[nb_path];
|
||||
int ant_c;
|
||||
int i;
|
||||
char end;
|
||||
|
||||
i = 0;
|
||||
end = 0;
|
||||
while (i < nb_paths)
|
||||
{
|
||||
its[i] = paths[i];
|
||||
i++;
|
||||
}
|
||||
ant_c = 0;
|
||||
while (++ant_c <= nb_paths)
|
||||
ant_p[ant_c - 1] = ant_c]
|
||||
while (!end)
|
||||
{
|
||||
i = 0;
|
||||
while (i < nb_paths)
|
||||
{
|
||||
ft_printf("L%d-%s", ant_p[i], get_node(data, its[i]->index)->name);
|
||||
if (i < nb_path - 1)
|
||||
ft_putchar(' ');
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
t_lmdata data;
|
||||
t_ind **path;
|
||||
@@ -29,8 +70,73 @@ int main(void)
|
||||
data.nb_nodes = NB_NODES;
|
||||
if ((data.adj = (t_ind**)ft_memalloc(sizeof(t_ind*) * NB_NODES)) == NULL)
|
||||
return (1);
|
||||
if (!add_link(&data, 0, 2) || !add_link(&data, 0, 1) || !add_link(&data, 0, 3))
|
||||
if (!add_link(&data, 0, 1) || !add_link(&data, 0, 2))
|
||||
{
|
||||
lst_inddel(&(data.adj[2]));
|
||||
lst_inddel(&(data.adj[1]));
|
||||
lst_inddel(&(data.adj[0]));
|
||||
ft_memdel((void**)&(data.adj));
|
||||
return (1);
|
||||
}
|
||||
if (!add_link(&data, 1, 4))
|
||||
{
|
||||
lst_inddel(&(data.adj[2]));
|
||||
lst_inddel(&(data.adj[1]));
|
||||
lst_inddel(&(data.adj[0]));
|
||||
ft_memdel((void**)&(data.adj));
|
||||
return (1);
|
||||
}
|
||||
if (!add_link(&data, 2, 3) || !add_link(&data, 2, 5))
|
||||
{
|
||||
lst_inddel(&(data.adj[4]));
|
||||
lst_inddel(&(data.adj[3]));
|
||||
lst_inddel(&(data.adj[2]));
|
||||
lst_inddel(&(data.adj[1]));
|
||||
lst_inddel(&(data.adj[0]));
|
||||
ft_memdel((void**)&(data.adj));
|
||||
return (1);
|
||||
}
|
||||
if (!add_link(&data, 3, 6))
|
||||
{
|
||||
lst_inddel(&(data.adj[5]));
|
||||
lst_inddel(&(data.adj[4]));
|
||||
lst_inddel(&(data.adj[3]));
|
||||
lst_inddel(&(data.adj[2]));
|
||||
lst_inddel(&(data.adj[1]));
|
||||
lst_inddel(&(data.adj[0]));
|
||||
ft_memdel((void**)&(data.adj));
|
||||
return (1);
|
||||
}
|
||||
if (!add_link(&data, 4, 5))
|
||||
{
|
||||
lst_inddel(&(data.adj[6]));
|
||||
lst_inddel(&(data.adj[5]));
|
||||
lst_inddel(&(data.adj[4]));
|
||||
lst_inddel(&(data.adj[3]));
|
||||
lst_inddel(&(data.adj[2]));
|
||||
lst_inddel(&(data.adj[1]));
|
||||
lst_inddel(&(data.adj[0]));
|
||||
ft_memdel((void**)&(data.adj));
|
||||
return (1);
|
||||
}
|
||||
if (!add_link(&data, 5, 6) || !add_link(&data, 5, 7))
|
||||
{
|
||||
lst_inddel(&(data.adj[6]));
|
||||
lst_inddel(&(data.adj[5]));
|
||||
lst_inddel(&(data.adj[4]));
|
||||
lst_inddel(&(data.adj[3]));
|
||||
lst_inddel(&(data.adj[2]));
|
||||
lst_inddel(&(data.adj[1]));
|
||||
lst_inddel(&(data.adj[0]));
|
||||
ft_memdel((void**)&(data.adj));
|
||||
return (1);
|
||||
}
|
||||
if (!add_link(&data, 6, 7))
|
||||
{
|
||||
lst_inddel(&(data.adj[7]));
|
||||
lst_inddel(&(data.adj[6]));
|
||||
lst_inddel(&(data.adj[5]));
|
||||
lst_inddel(&(data.adj[4]));
|
||||
lst_inddel(&(data.adj[3]));
|
||||
lst_inddel(&(data.adj[2]));
|
||||
lst_inddel(&(data.adj[1]));
|
||||
@@ -38,69 +144,6 @@ int main(void)
|
||||
ft_memdel((void**)&(data.adj));
|
||||
return (1);
|
||||
}
|
||||
/* if (!add_link(&data, 1, 4)) */
|
||||
/* { */
|
||||
/* lst_inddel(&(data.adj[2])); */
|
||||
/* lst_inddel(&(data.adj[1])); */
|
||||
/* lst_inddel(&(data.adj[0])); */
|
||||
/* ft_memdel((void**)&(data.adj)); */
|
||||
/* return (1); */
|
||||
/* } */
|
||||
/* if (!add_link(&data, 2, 3) || !add_link(&data, 2, 5)) */
|
||||
/* { */
|
||||
/* lst_inddel(&(data.adj[3])); */
|
||||
/* lst_inddel(&(data.adj[2])); */
|
||||
/* lst_inddel(&(data.adj[1])); */
|
||||
/* lst_inddel(&(data.adj[0])); */
|
||||
/* ft_memdel((void**)&(data.adj)); */
|
||||
/* return (1); */
|
||||
/* } */
|
||||
/* if (!add_link(&data, 3, 6)) */
|
||||
/* { */
|
||||
/* lst_inddel(&(data.adj[5])); */
|
||||
/* lst_inddel(&(data.adj[3])); */
|
||||
/* lst_inddel(&(data.adj[2])); */
|
||||
/* lst_inddel(&(data.adj[1])); */
|
||||
/* lst_inddel(&(data.adj[0])); */
|
||||
/* ft_memdel((void**)&(data.adj)); */
|
||||
/* return (1); */
|
||||
/* } */
|
||||
/* if (!add_link(&data, 4, 5)) */
|
||||
/* { */
|
||||
/* lst_inddel(&(data.adj[6])); */
|
||||
/* lst_inddel(&(data.adj[5])); */
|
||||
/* lst_inddel(&(data.adj[3])); */
|
||||
/* lst_inddel(&(data.adj[2])); */
|
||||
/* lst_inddel(&(data.adj[1])); */
|
||||
/* lst_inddel(&(data.adj[0])); */
|
||||
/* ft_memdel((void**)&(data.adj)); */
|
||||
/* return (1); */
|
||||
/* } */
|
||||
/* if (!add_link(&data, 5, 6) || !add_link(&data, 5, 7)) */
|
||||
/* { */
|
||||
/* lst_inddel(&(data.adj[6])); */
|
||||
/* lst_inddel(&(data.adj[5])); */
|
||||
/* lst_inddel(&(data.adj[4])); */
|
||||
/* lst_inddel(&(data.adj[3])); */
|
||||
/* lst_inddel(&(data.adj[2])); */
|
||||
/* lst_inddel(&(data.adj[1])); */
|
||||
/* lst_inddel(&(data.adj[0])); */
|
||||
/* ft_memdel((void**)&(data.adj)); */
|
||||
/* return (1); */
|
||||
/* } */
|
||||
/* if (!add_link(&data, 6, 7)) */
|
||||
/* { */
|
||||
/* lst_inddel(&(data.adj[7])); */
|
||||
/* lst_inddel(&(data.adj[6])); */
|
||||
/* lst_inddel(&(data.adj[5])); */
|
||||
/* lst_inddel(&(data.adj[4])); */
|
||||
/* lst_inddel(&(data.adj[3])); */
|
||||
/* lst_inddel(&(data.adj[2])); */
|
||||
/* lst_inddel(&(data.adj[1])); */
|
||||
/* lst_inddel(&(data.adj[0])); */
|
||||
/* ft_memdel((void**)&(data.adj)); */
|
||||
/* return (1); */
|
||||
/* } */
|
||||
ft_printf("===== list of adj =====\n");
|
||||
i = 0;
|
||||
while (i < NB_NODES)
|
||||
@@ -114,7 +157,7 @@ int main(void)
|
||||
}
|
||||
i++;
|
||||
}
|
||||
path = edmunds_karp(&data, 0, 1);
|
||||
path = edmunds_karp(&data, 0, 7);
|
||||
if (path != NULL)
|
||||
{
|
||||
i = 0;
|
||||
@@ -131,10 +174,10 @@ int main(void)
|
||||
}
|
||||
}
|
||||
tablst_inddel(path);
|
||||
/* lst_inddel(&(data.adj[7])); */
|
||||
/* lst_inddel(&(data.adj[6])); */
|
||||
/* lst_inddel(&(data.adj[5])); */
|
||||
/* lst_inddel(&(data.adj[4])); */
|
||||
lst_inddel(&(data.adj[7]));
|
||||
lst_inddel(&(data.adj[6]));
|
||||
lst_inddel(&(data.adj[5]));
|
||||
lst_inddel(&(data.adj[4]));
|
||||
lst_inddel(&(data.adj[3]));
|
||||
lst_inddel(&(data.adj[2]));
|
||||
lst_inddel(&(data.adj[1]));
|
||||
|
||||
Reference in New Issue
Block a user