Commit ee6ad6be authored by Raphael's avatar Raphael

first pushable version

parent f71e51bd
......@@ -6,7 +6,7 @@
# By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2019/06/03 14:03:16 by rbeaufre #+# #+# #
# Updated: 2019/12/03 17:02:34 by rbeaufre ### ########.fr #
# Updated: 2019/12/03 17:23:18 by rbeaufre ### ########.fr #
# #
# **************************************************************************** #
......@@ -50,6 +50,7 @@ SRC_RAW = get_next_line.c \
print_ant_moves.c \
print_ant_moves_utils.c \
print_ant_moves_inits.c \
print_ant_moves_rounds.c \
algo.c \
bfs_gaspard.c \
ft_put_bibli.c \
......
......@@ -6,7 +6,7 @@
/* By: gmoindro <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/12/02 17:10:43 by gmoindro #+# #+# */
/* Updated: 2019/12/03 14:36:40 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:20:50 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
......
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* check_start_connected_to_end.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/18 15:04:10 by rbeaufre #+# #+# */
/* Updated: 2019/11/24 20:24:44 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
#include "lem-in.h"
static void ft_handle_error(t_params **params)
{
(*params)->error_line = 0;
ft_strdel(&((*params)->error_type));
(*params)->error_type = ft_strdup("No path detected between start and end");
(*params)->fatal_error = 1;
}
static void ft_handle_joins(t_params **params, t_node *node)
{
char *str;
str = (*params)->path_start_end;
(*params)->path_start_end = ft_strjoin(str, node->name);
ft_strdel(&str);
str = (*params)->path_start_end;
(*params)->path_start_end = ft_strjoin((*params)->path_start_end, " < ");
ft_strdel(&str);
(*params)->length_path_start_end++;
}
static void ft_handle_end(t_params **params, t_node *fixed_start)
{
char *str;
str = (*params)->path_start_end;
(*params)->path_start_end = ft_strjoin(str, fixed_start->name);
ft_strdel(&str);
ft_printf("{GREEN}%s{EOC}\n", (*params)->path_start_end);
ft_printf("This path has a size {YELLOW}%i{EOC}, for {YELLOW}%i{EOC} rooms, ratio of {YELLOW}%f{EOC}\n", (*params)->length_path_start_end, (*params)->rooms_count, (float) (*params)->length_path_start_end / (float) (*params)->rooms_count);
ft_strdel(&((*params)->path_start_end));
(*params)->length_path_start_end = 0;
}
int ft_check_start_connected_to_end_dfs(t_params **params, t_node *start, t_node *fixed_start)
{
t_list *tmp;
t_node *node;
if (start->is_end == 1)
{
ft_printf("-----------------------\n");
ft_printf("{GREEN}[Success]{EOC} A path detected with {YELLOW}D{EOC}FS (recursive) from start to end\n");
return (1);
}
start->passed_flag = 1;
tmp = start->next;
while (tmp && tmp->content)
{
node = (t_node *) tmp->content;
//ft_printf("Scanning node %s\n", node->name);
if (node->passed_flag == 0)
{
//ft_printf("--- Really trying node %s\n", node->name);
node->passed_flag = 1;
if (ft_check_start_connected_to_end_dfs(params, node, fixed_start))
{
ft_handle_joins(params, node);
if (node == fixed_start->next->content)
ft_handle_end(params, fixed_start);
return (1);
}
}
tmp = tmp->next;
}
if (ft_strcmp(start->name, fixed_start->name) == 0)
{
ft_handle_error(params);
return (-1);
}
//ft_printf("##################backup\n");
return (0);
}
/*static void ft_display_tab(t_node **queue)
{
int i;
i = 0;
while (queue[i] != NULL)
{
//ft_printf(" > %s", queue[i]->name);
i++;
}
//ft_printf("\n");
}*/
int ft_check_start_connected_to_end_bfs(t_params **params, t_node *start, t_node *fixed_start)
{
t_list *tmp;
t_node *queue[(*params)->rooms_count];
int i;
int j;
t_node *node;
(void)fixed_start;
i = 0;
while (i < (*params)->rooms_count)
{
queue[i] = NULL;
i++;
}
i = 0;
queue[0] = start;
start->passed_flag = 1;
j = 1;
while (queue[i])
{
//ft_printf("Checking node %s\n", queue[i]->name);
//ft_display_tab(queue);
//queue[i]->passed_flag = 1;
if (queue[i]->is_end == 1)
{
ft_printf("-----------------------\n");
ft_printf("{GREEN}[Success]{EOC} A path detected with {YELLOW}B{EOC}FS (iterative) from start to end\n");
return (1);
}
tmp = queue[i]->next;
if (i != 0)
j = j - 1;
while (tmp)
{
node = (t_node *) tmp->content;
//ft_printf("{YELLOW}i: %i, j : %i, i + j: %i {EOC}\n", i, j, i + j);
//ft_printf("--- Considering to add node %s", node->name);
if (node->passed_flag == 0)
{
//ft_printf("---ADDED\n");
node->passed_flag = 1;
queue[i + j] = node;
j++;
}
//else
// ft_printf("---NOT ADDED\n");
tmp = tmp->next;
}
i++;
}
ft_handle_error(params);
return (-1);
}
......@@ -6,7 +6,7 @@
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/18 15:04:10 by rbeaufre #+# #+# */
/* Updated: 2019/12/03 14:40:24 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:46:58 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
......
......@@ -6,7 +6,7 @@
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/28 15:12:32 by rbeaufre #+# #+# */
/* Updated: 2019/11/28 18:37:10 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:46:01 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
......@@ -30,7 +30,7 @@ void ft_print_father_list(t_node *end, t_params **params)
t_node *node;
tmp = end->father;
if (PRINT == 1)
if ((*params)->print == 1)
{
ft_printf("-----------------------\n{GREEN}[Success]{EOC}");
ft_printf("A path detected with {YELLOW}B{EOC}FS (iterative) from ");
......@@ -40,13 +40,13 @@ void ft_print_father_list(t_node *end, t_params **params)
{
(*params)->length_path_start_end++;
node = (t_node *)tmp->content;
if (node->father && PRINT == 1)
if (node->father && (*params)->print == 1)
ft_printf("{GREEN} %s <{EOC}", node->name);
else if (PRINT == 1)
else if ((*params)->print == 1)
ft_printf("{GREEN} %s {EOC}\n", node->name);
tmp = node->father;
}
if (PRINT == 1)
if ((*params)->print == 1)
{
ft_printf(" {YELLOW}%i{EOC}", (*params)->length_path_start_end);
ft_printf("-long path\n");
......@@ -55,7 +55,7 @@ void ft_print_father_list(t_node *end, t_params **params)
int ft_handle_end(t_node **queue, t_params **params, int i)
{
if (PRINT == 1)
if ((*params)->print == 1)
ft_print_father_list(queue[i], params);
(*params)->length_path_start_end = 0;
free(queue);
......
......@@ -6,7 +6,7 @@
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/18 15:04:10 by rbeaufre #+# #+# */
/* Updated: 2019/11/28 20:34:32 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:47:17 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
......@@ -38,7 +38,7 @@ static void ft_handle_end_dfs(t_params **params, t_node *fixed_start)
{
char *str;
if (PRINT == 1)
if ((*params)->print == 1)
{
ft_printf("-----------------------\n{GREEN}[Success]{EOC}");
ft_printf("A path detected with {YELLOW}D{EOC}FS (recursive) from");
......@@ -47,7 +47,7 @@ static void ft_handle_end_dfs(t_params **params, t_node *fixed_start)
str = (*params)->path_start_end;
(*params)->path_start_end = ft_strjoin(str, fixed_start->name);
ft_strdel(&str);
if (PRINT == 1)
if ((*params)->print == 1)
{
ft_printf("{GREEN} %s{EOC}\n", (*params)->path_start_end);
ft_printf(" {YELLOW}%i{EOC}", (*params)->length_path_start_end);
......
......@@ -6,7 +6,7 @@
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/14 18:18:17 by rbeaufre #+# #+# */
/* Updated: 2019/12/03 17:03:56 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:19:22 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
......
......@@ -6,7 +6,7 @@
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/12/03 16:38:03 by rbeaufre #+# #+# */
/* Updated: 2019/12/03 16:51:23 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:11:39 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
......@@ -15,7 +15,7 @@
static void ft_free_list_again(t_list *bib)
{
t_list *tmp;
t_list *nxt;
t_list *nxt;
tmp = bib->next;
while (tmp)
......@@ -39,7 +39,7 @@ static void ft_free_list(t_list ***bib, int i)
}
}
void ft_free_bib(t_list ***bib, t_params **params)
void ft_free_bib(t_list ***bib, t_params **params)
{
int i;
......
......@@ -6,13 +6,12 @@
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/15 17:29:15 by rbeaufre #+# #+# */
/* Updated: 2019/12/03 16:39:13 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:44:38 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
#include "lem_in.h"
static void ft_initialize_params_other(t_params **params)
{
(*params)->length_path_start_end = 0;
......@@ -23,6 +22,8 @@ static void ft_initialize_params_other(t_params **params)
(*params)->best_index = -1;
(*params)->best_cycle_number = -1;
(*params)->allow_printing_moves = 0;
(*params)->print = 0;
(*params)->print_list = 0;
}
int ft_initialize_params(t_params **params)
......
No preview for this file type
......@@ -6,7 +6,7 @@
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/06/17 16:32:05 by rbeaufre #+# #+# */
/* Updated: 2019/12/03 14:49:29 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:47:41 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
......@@ -99,7 +99,7 @@ int main(void)
ft_print_parsing_error_non_fatal(&params);
if (params->fatal_error == 1 && ft_handle_fatal(&params, &list) == 1)
return (0);
if (PRINT == 1)
if (params->print == 1)
ft_print_general_details(&list, &params);
ft_print_map(&params);
ft_algo(&params, &list);
......
......@@ -6,7 +6,7 @@
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/06/17 07:39:34 by rbeaufre #+# #+# */
/* Updated: 2019/12/03 17:02:01 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:49:38 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
......@@ -20,9 +20,6 @@
# include <sys/stat.h>
# include <fcntl.h>
# define PRINT (0)
# define PRINT_LIST (0)
typedef struct s_params t_params;
struct s_params
......@@ -52,6 +49,8 @@ struct s_params
int best_cycle_number;
int ants_launched;
int allow_printing_moves;
int print;
int print_list;
};
typedef struct s_node t_node;
......@@ -122,7 +121,6 @@ int ft_is_neighbor_with_name_hash(t_node *node, long hash);
void ft_reset_passed_flags(t_list **list);
long ft_hash(char *str);
int ft_check_ants(t_params **params);
//void ft_free_fathers(t_list **list);
void ft_set_has_start_or_end(t_params **params, char *str);
int ft_lin(t_params **params, int i, char **str);
int ft_lsharp(t_params **params, char **str, int i);
......@@ -143,7 +141,6 @@ void ft_fill_length(int *length, t_list **bib, int index);
void ft_print_bibli(t_list **result, int i);
void ft_init_ants(t_list **ants, int ant_count);
void ft_init_ants_start(int *ants_start, int index);
void ft_algo(t_params **params, t_list **list);
void ft_reset_passed_flags_gasp(t_list **list);
int ft_bfs_gaspard(t_list **list, t_params **params, t_node *start);
......@@ -155,5 +152,8 @@ void ft_test_voisin(t_node *node, t_list *tmp);
void ft_init_length(int *length, int index);
void ft_free_bib(t_list ***bib, t_params **params);
void ft_add_to_map_output(t_params **params, char *str);
void ft_print_first_round(int *ants_start,
t_list **ants, t_params **params, t_list **bib);
void ft_print_other_rounds(int *ants_end, t_list **ants,
t_params **params);
#endif
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -6,7 +6,7 @@
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/17 17:00:43 by rbeaufre #+# #+# */
/* Updated: 2019/12/03 16:57:56 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:13:04 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
......@@ -90,7 +90,6 @@ int ft_parse_fatal_errors_check(t_params **params, t_list **list)
if (ft_check_start_connected_to_end_bfs(params, node) == -1)
return (-1);
ft_reset_passed_flags(list);
//ft_free_fathers(list);
if (ft_check_start_connected_to_end_dfs(params, node, node) == -1)
return (-1);
ft_reset_passed_flags(list);
......
......@@ -6,7 +6,7 @@
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/28 20:47:23 by rbeaufre #+# #+# */
/* Updated: 2019/12/03 16:29:24 by rbeaufre ### ########.fr */
/* Updated: 2019/12/03 17:44:40 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
......@@ -26,8 +26,7 @@ static void ft_ants_dispatch(int *length, int *ants_start, t_params **params)
{
i = -1;
i_select = 0;
cost_select = length[0];
cost_select = cost_select + ants_start[0];
cost_select = length[0] + ants_start[0];
cost_i = 0;
while (++i < (*params)->index)
{
......@@ -42,158 +41,52 @@ static void ft_ants_dispatch(int *length, int *ants_start, t_params **params)
}
}
static void ft_print_first_round(int *ants_start,
t_list **ants, t_params **params, t_list **bib)
static void ft_handle_comp(t_params **params)
{
int i;
i = 0;
while (i < (*params)->index)
{
if (ants_start[i] > 0)
{
//ft_printf(" (START)Je balaye le chemin %i, avec ants[start] a %i \n", i, ants_start[i]);
if (ants_start[i] != 0)
{
if ((*params)->allow_printing_moves == 1)
ft_printf("L%i-%s ", (*params)->ants_launched + 1, ((t_node *)bib[i]->next->content)->name);
ants[(*params)->ants_launched] = bib[i]->next;
(*params)->ants_launched++;
ants_start[i]--;
}
}
i++;
}
if ((*params)->allow_printing_moves == 1)
ft_printf("\n");
}
static void ft_print_other_rounds(int *ants_end, t_list **ants,
t_params **params)
{
int j;
j = 0;
while (j < (*params)->ant_count)
if ((*params)->best_cycle_number == -1 ||
(*params)->cycle_number < (*params)->best_cycle_number)
{
if (ants[j] != NULL && ants[j]->next != NULL)
{
//ft_printf(" (SUITE)Je balaye la fourmi %i\n", j);
if ((*params)->allow_printing_moves == 1)
ft_printf("L%i-%s ", j + 1, ((t_node *)ants[j]->next->content)->name);
ants[j] = ants[j]->next;
if (ants[j]->next == NULL)
{
//ft_printf("{RED}Reset ants[%i] to NULL{EOC}\n", j);
ants[j] = NULL;
(*ants_end)++;
}
}
j++;
(*params)->best_cycle_number = (*params)->cycle_number;
(*params)->best_index = (*params)->index;
}
//if (ants[0] == NULL)
// ft_printf("{RED}Ants 0 vaut bien NULL{EOC}\n", j);
(*params)->index = -1;
(*params)->cycle_number = 0;
(*params)->ants_launched = 0;
}
void ft_print_ant_moves(t_list ***bib, t_params **params)
static void ft_handle_loop(t_params **params, int index, t_list ***bib)
{
t_list **ants;
int *length;
int *ants_start;
t_list *ants[(*params)->ant_count];
int length[index];
int ants_start[index];
int ants_end;
int index;
ants_end = 0;
index = 1;
//ft_printf("Le Index_max vaut %i\n\n", (*params)->index_max);
while (index <= (*params)->index_max)
{
ants = NULL;
length = NULL;
ants_start = NULL;
(*params)->index = index;
ants = (t_list **)malloc(sizeof(t_list *) * (*params)->ant_count);
length = (int *)malloc(sizeof(int) * index);
ants_start = (int *)malloc(sizeof(int) * index);
if (!ants || !length || !ants_start)
return ;
// REMETTRE A ZERO APRES
(*params)->allow_printing_moves = 0;
ft_init_ants_start(ants_start, index);
ft_init_ants(ants, (*params)->ant_count);
ft_init_length(length, index);
//ft_print_bibli(bib[index - 1], index);
ft_fill_length(length, bib[index - 1], index);
ft_ants_dispatch(length, ants_start, params);
//ft_printf("Lengths\n");
//ft_print_tab(length, index);
//ft_printf("[%i] ants total, printing dispatch\n", (*params)->ant_count);
//ft_printf("Dispatch:\n");
//ft_print_tab(ants_start, index);
while (ants_end != (*params)->ant_count)
{
//ft_printf("{YELLOW}Cycle%i -- ants_arrived vaut %i{EOC}\n", (*params)->cycle_number, ants_end);
ft_print_other_rounds(&ants_end, ants, params);
ft_print_first_round(ants_start, ants, params, bib[index -1]);
(*params)->cycle_number++;
}
if ((*params)->best_cycle_number == -1 || (*params)->cycle_number < (*params)->best_cycle_number)
{
(*params)->best_cycle_number = (*params)->cycle_number;
(*params)->best_index = (*params)->index;
}
(*params)->index = -1;
//ft_printf("Index {YELLOW}%i: {EOC}{GREEN}%i ants to end, handled in %i cycles{EOC}\n", index, ants_end, (*params)->cycle_number);
(*params)->cycle_number = 0;
(*params)->ants_launched = 0;
ants_end = 0;
//ft_printf("{YELLOW}Cycle%i -- ants_arrived vaut %i{EOC}\n",
//(*params)->cycle_number, ants_end);
free(ants);
free(length);
free(ants_start);
index++;
}
index = (*params)->best_index;
(*params)->index = (*params)->best_index;
// REMETTRE A UN APRES
(*params)->allow_printing_moves = 1;
//ft_printf("\nTADAM ---------------------index ------- %i\n", index);
ants = (t_list **)malloc(sizeof(t_list *) * (*params)->ant_count);
length = (int *)malloc(sizeof(int) * index);
ants_start = (int *)malloc(sizeof(int) * index);
if (!ants || !length || !ants_start)
return ;
(*params)->index = index;
ft_init_ants_start(ants_start, index);
ft_init_ants(ants, (*params)->ant_count);
ft_init_length(length, index);
//ft_print_bibli(bib[index - 1], index);
ft_fill_length(length, bib[index - 1], index);
ft_ants_dispatch(length, ants_start, params);
//ft_printf("Lengths\n");
//ft_print_tab(length, index);
//ft_printf("[%i] ants total, printing dispatch\n", (*params)->ant_count);
//ft_printf("Dispatch:\n");
//ft_print_tab(ants_start, index);
while (ants_end != (*params)->ant_count)
{
//ft_printf("{YELLOW}Cycle%i -- ants_arrived vaut %i{EOC}\n", (*params)->cycle_number, ants_end);
ft_print_other_rounds(&ants_end, ants, params);
ft_print_first_round(ants_start, ants, params, bib[index - 1]);
(*params)->cycle_number++;
}
if ((*params)->best_cycle_number != 0 && (*params)->cycle_number < (*params)->best_cycle_number)
{
(*params)->best_cycle_number = (*params)->cycle_number;
(*params)->best_index = (*params)->index;
}
(*params)->index = -1;
(*params)->cycle_number = 0;
//ft_printf("{YELLOW}Cycle%i -- ants_arrived vaut %i{EOC}\n",
//(*params)->cycle_number, ants_end);
free(ants);
free(length);
free(ants_start);
ft_handle_comp(params);
ants_end = 0;
}
void ft_print_ant_moves(t_list ***bib, t_params **params)
{
int index;
index = 0;
while (++index <= (*params)->index_max)
ft_handle_loop(params, index, bib);
index = (*params)->best_index;
(*params)->index = (*params)->best_index;
(*params)->allow_printing_moves = 1;
ft_handle_loop(params, index, bib);
}
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_print_ant_moves.c :+: :+: :+: */
/* print_ant_moves_rounds.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: rbeaufre <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/28 20:47:23 by rbeaufre #+# #+# */
/* Updated: 2019/11/28 21:32:36 by rbeaufre ### ########.fr */
/* Created: 2019/12/03 17:21:46 by rbeaufre #+# #+# */
/* Updated: 2019/12/03 17:22:47 by rbeaufre ### ########.fr */
/* */
/* ************************************************************************** */
#include "lem_in.h"
static int ft_bib_len(t_list ***bib)
void ft_print_first_round(int *ants_start,
t_list **ants, t_params **params, t_list **bib)
{
int i;
int i;
i = 0;
while (bib[i])
while (i < (*params)->index)
{
if (ants_start[i] > 0)
{
if (ants_start[i] != 0)
{
if ((*params)->allow_printing_moves == 1)
ft_printf("L%i-%s ", (*params)->ants_launched + 1,
((t_node *)bib[i]->next->content)->name);
ants[(*params)->ants_launched] = bib[i]->next;
(*params)->ants_launched++;
ants_start[i]--;
}
}
i++;
return (i);
}
if ((*params)->allow_printing_moves == 1)
ft_printf("\n");
}
static void ft_print_max(t_list ***bib, t_params **params, int size)
void ft_print_other_rounds(int *ants_end, t_list **ants,
t_params **params)
{
}
void ft_print_ant_moves(t_list ***bib, t_params **params)
{
int nb;
int i;
i = 0;
nb = (*params)->ant_count;
int j;
if (!bib)