From 8a62783a6b84e3b72489da321a05b9bd88202beb Mon Sep 17 00:00:00 2001 From: Manzovince Date: Thu, 9 May 2019 12:46:59 +0200 Subject: [PATCH] WORKING VERSION FOR 42FileChecker test. All test passed ! --- handle_errors.c | 32 ++++++++++++++++++++++---------- main.c | 14 ++++++-------- parse_input.c | 10 ++++------ print.c | 7 ++++--- search_map.c | 8 ++++---- 5 files changed, 40 insertions(+), 31 deletions(-) diff --git a/handle_errors.c b/handle_errors.c index b65ff32..6ff8593 100644 --- a/handle_errors.c +++ b/handle_errors.c @@ -6,7 +6,7 @@ /* By: vmanzoni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/03/01 13:29:05 by vmanzoni #+# #+# */ -/* Updated: 2019/05/08 08:09:14 by vmanzoni ### ########.fr */ +/* Updated: 2019/05/09 12:45:25 by vmanzoni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,9 +16,9 @@ ** Function that display error message *s on fd and exit program */ -void print_error(char *s) +void print_error(char *str) { - write(2, s, strlen(s)); + write(1, str, ft_strlen(str)); exit(1); } @@ -33,14 +33,14 @@ void print_error_extended(int error) if (error == 1) ft_putstr("error: File contains char other than '.','#' and '\\n'.\n"); if (error == 2) - ft_putstr("error: File contains more than 2 \\n in a row.\n"); + ft_putstr("error: File contains more than 2 '\\n' in a row.\n"); if (error == 3) - ft_putstr("error: File contains less than 1 tetrimino" + ft_putstr("error: File contains less than 1 tetrimino " "or more than 26.\n"); if (error == 4) - ft_putstr("\n\nerror: This tetrimino has more or less than 4 #.\n"); + ft_putstr("error: Tetrimino has more or less than 4 #.\n"); if (error == 5) - ft_putstr("\n\nerror: This tetrimino # are not all connected.\n"); + ft_putstr("error: Tetrimino # are not all connected.\n"); exit(1); } @@ -62,8 +62,10 @@ int check_file_errors(char *file) { if (file[i] != '.' && file[i] != '#' && file[i] != '\n') return (1); - if (file[i] == '\n') + else if (file[i] == '\n') line_nbr++; + if (file[i] == '\n' && line_nbr % 5 == 0 && file[i-1] != '\n') + print_error("error\n"); if (file[i] == '\n' && file[i+1] != '\0' && \ file[i+2] != '.' && file[i+2] != '#') return (2); @@ -109,17 +111,27 @@ int check_tetri_errors(char *tetri) int check_tetri_errors_proxy(char *tetri) { int i; + int j; i = 0; + j = 0; while (tetri[i]) { + if (tetri[i] == '#' && tetri[i + 1] == '#') + j++; + if (tetri[i] == '#' && tetri[i - 1] == '#') + j++; + if (tetri[i] == '#' && tetri[i + 5] == '#') + j++; + if (tetri[i] == '#' && tetri[i - 5] == '#') + j++; if (tetri[i] == '.' || tetri[i] == '\n') i++; else if (tetri[i] == '#' && (tetri[i + 1] == '#' || tetri[i - 1] == '#' - || tetri[i + 5] == '#' || tetri[i - 5] == '#')) + || tetri[i + 5] == '#' || tetri[i - 5] == '#')) i++; else return (1); } - return (0); + return ((j < 6) ? 1 : 0); } diff --git a/main.c b/main.c index bfa33ec..9b9e499 100644 --- a/main.c +++ b/main.c @@ -6,7 +6,7 @@ /* By: vmanzoni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/02/12 13:20:48 by vmanzoni #+# #+# */ -/* Updated: 2019/05/03 19:12:47 by vmanzoni ### ########.fr */ +/* Updated: 2019/05/09 11:45:36 by vmanzoni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,15 +19,13 @@ int main(int argc, char **argv) if (argc == 2) { if (!(input = read_file(argv[1]))) - print_error("error: Could not read file.\n"); + print_error("error\n"); +// print_error("error: Could not read file.\n"); if (check_file_errors(input)) - print_error_extended(check_file_errors(input)); -// print_error("error: Invalid file.\n"); + print_error("error\n"); +// print_error("error: Invalid file.\n"); +// print_error_extended(check_file_errors(input)); parse_input(input); - /* - Backtracking for smallest square - Transform tetriminos with letters & Print result - */ } else print_error("usage: Please submit a file.\n> ./fillit file.fillit\n"); diff --git a/parse_input.c b/parse_input.c index 517215e..6354e0f 100644 --- a/parse_input.c +++ b/parse_input.c @@ -6,7 +6,7 @@ /* By: vmanzoni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/04/15 14:48:14 by vmanzoni #+# #+# */ -/* Updated: 2019/05/06 16:30:45 by hulamy ### ########.fr */ +/* Updated: 2019/05/09 11:45:08 by vmanzoni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -140,11 +140,9 @@ void parse_input(char *input) tetri[j++] = input[i++]; tetri[19] = '\0'; if (check_tetri_errors(tetri)) - { - ft_putstr(tetri); - print_error_extended(check_tetri_errors(tetri)); - //print_error("\n\nerror: This tetrimino is not valid.\n"); - } + print_error("error\n"); +// print_error("error: Wrong tetrimino.\n"); +// print_error_extended(check_tetri_errors(tetri)); add_to_list(tetri, &list, letter++); while (input[i] && input[i] != '.' && input[i] != '#') i++; diff --git a/print.c b/print.c index ce77edd..d70fcaa 100644 --- a/print.c +++ b/print.c @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/04/30 13:24:28 by hulamy #+# #+# */ -/* Updated: 2019/05/08 17:52:14 by hulamy ### ########.fr */ +/* Updated: 2019/05/08 19:46:03 by vmanzoni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -117,8 +117,9 @@ void print_final_map(t_fillist *list, int size) { if (i && i % size == 0) ft_putchar('\n'); - ft_put_tetri_color(map[i]); - ft_putchar(' '); + ft_putchar(map[i]); +// ft_put_tetri_color(map[i]); +// ft_putchar(' '); } ft_putchar('\n'); } diff --git a/search_map.c b/search_map.c index b1176eb..89fed03 100644 --- a/search_map.c +++ b/search_map.c @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/04/27 20:47:22 by hulamy #+# #+# */ -/* Updated: 2019/05/08 18:38:47 by hulamy ### ########.fr */ +/* Updated: 2019/05/08 19:38:23 by vmanzoni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -155,8 +155,8 @@ void search_map(t_fillist *list) // imression pour tests print = tmp->tetribit; print <<= 16; - print_map(&print, tmp->width, tmp->height, tmp->letter); // test, imprime le tetri - ft_putchar('\n'); +// print_map(&print, tmp->width, tmp->height, tmp->letter); // test, imprime le tetri +// ft_putchar('\n'); tmp = tmp->next; } @@ -165,5 +165,5 @@ void search_map(t_fillist *list) while (!fill_map(map, list, size, list)) map = init_map(size++); print_final_map(list, size); // DEBUG - print_map(map, size, size, '#'); // DEBUG +// print_map(map, size, size, '#'); // DEBUG }