IT WORKS !

functionning ./lem_in that can read maps and display ants path
still need to clean leaks
still need remove debug info
This commit is contained in:
Tanguy MAZE
2019-04-09 19:09:29 +02:00
parent 434b629055
commit 3b893147e5
11 changed files with 364 additions and 235 deletions

View File

@@ -6,7 +6,7 @@
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/03/23 17:31:19 by tmaze #+# #+# */
/* Updated: 2019/04/06 13:49:17 by tmaze ### ########.fr */
/* Updated: 2019/04/09 18:35:50 by tmaze ### ########.fr */
/* */
/* ************************************************************************** */
@@ -38,7 +38,6 @@ typedef struct s_lmdata
{
int nbants;
int nb_nodes;
t_list *nodes;
t_node *nodes_data;
t_ind **adj;
} t_lmdata;
@@ -67,6 +66,10 @@ typedef struct s_syntax
int s_cmd;
int s_pos;
int error;
int s_error;
int e_error;
int v_error;
int l_error;
int s_vert;
int e_vert;
int gr_status;
@@ -99,10 +102,15 @@ typedef struct s_AdjList
t_adjlist *head;
} t_adj;
typedef struct s_lm_adj
{
t_ind *head;
} t_lm_adj;
typedef struct s_graph
{
int v;
t_adj *array;
t_lm_adj *array;
} t_graph;
typedef struct s_neighbour
@@ -111,32 +119,45 @@ typedef struct s_neighbour
struct s_neighbor *next;
} t_neighbor;
typedef struct s_rdata
{
char *line;
struct s_rdata *next;
} t_rdata;
//MT-FUNCTIONS
int lm_error_exit(int flag);
int lm_error_exit(void);
int lm_validate(t_syntax *synt, t_lmdata *lmdata);
void lm_parser(int fd, t_syntax *synt, t_lmdata *ldata,
t_holder *holder);
int lm_check_room_before(char **tab, t_syntax *synt);
void lm_init_data(t_syntax *synt, t_lmdata *ldata, t_holder *holder);
int lm_add_vertex(t_lmdata *ldata, char *raw, char flag, t_syntax *synt);
t_adjlist *lm_new_node(int dest);
int lm_parser(t_syntax *synt, t_lmdata *ldata
, t_holder *holder);
int lm_check_room_before(char **tab, t_syntax *synt);
int lm_add_vertex(t_lmdata *ldata, char *raw, char flag, t_syntax *synt);
t_adjlist *lm_new_node(int dest);
t_graph *lm_creategraph(int v);
void lm_add_edge(t_graph *graph, int src, int dest);
int lm_ext_conn(t_holder *holder, t_lmdata *data, char *raw);
int lm_find_index(t_lmdata *data, char *str);
int lm_get_value(char *line);
void lm_get_cmd_vert(int count, t_syntax *synt
, t_lmdata *ldata, char *line);
void lm_get_vert_link(int count, t_syntax *synt, t_lmdata *ldata
, t_holder *holder, char *line);
int lm_validate_rooms(char *name, char *x, char *y);
int lm_adj_parser(t_lmdata *lmdata, t_holder *holder);
void lm_init_data(t_syntax *synt, t_holder *holder, t_lmdata *ldata);
void lm_initdata(t_lmdata *data);
int lm_getparams(t_lmdata *data);
t_ind **lst_indinit(t_lmdata *data);
int lst_indadd_link(t_lmdata *data, int n1, int n2);
t_ind *lst_indadd(t_ind **lst, int ind);
void lst_inddel(t_ind **lst);
void tablst_inddel(t_ind **tab);
void bfs(t_lmdata *data, t_bfs *tab, int start_ind, int end_ind);
t_ind **edmunds_karp(t_lmdata *data, int start_ind, int end_ind);
void push_ants(t_lmdata *data, t_ind **paths, int nb_paths);
#endif