few little edits + show wrong tetri feature

This commit is contained in:
Manzovince
2019-04-30 15:32:47 +02:00
parent 4d4ec6d8e0
commit 5dd491ed52
2 changed files with 23 additions and 13 deletions

View File

@@ -6,7 +6,7 @@
/* By: vmanzoni <vmanzoni@student.42.fr> +#+ +:+ +#+ */ /* By: vmanzoni <vmanzoni@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2019/03/01 13:34:46 by vmanzoni #+# #+# */ /* Created: 2019/03/01 13:34:46 by vmanzoni #+# #+# */
/* Updated: 2019/04/30 14:19:39 by hulamy ### ########.fr */ /* Updated: 2019/04/30 14:43:42 by vmanzoni ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@@ -18,8 +18,8 @@
#include <fcntl.h> // for system call open #include <fcntl.h> // for system call open
#include <stdio.h> // for printf (DELETE BEFORE EVAL) #include <stdio.h> // for printf (DELETE BEFORE EVAL)
#include "../42-libft/includes/libft.h" #include "libft/includes/libft.h"
//# define BUFF_SIZE 1024 # define BUFF_SIZE 1024
/* /*
** STRUCTURE ** STRUCTURE

View File

@@ -6,7 +6,7 @@
/* By: vmanzoni <vmanzoni@student.42.fr> +#+ +:+ +#+ */ /* By: vmanzoni <vmanzoni@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2019/04/15 14:48:14 by vmanzoni #+# #+# */ /* Created: 2019/04/15 14:48:14 by vmanzoni #+# #+# */
/* Updated: 2019/04/30 14:19:32 by hulamy ### ########.fr */ /* Updated: 2019/04/30 15:30:53 by vmanzoni ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@@ -62,13 +62,15 @@ unsigned short reduce_tetri(unsigned short tetri, int width)
void fill_list(char line[], t_fillist *list) void fill_list(char line[], t_fillist *list)
{ {
// unsigned int tmp; unsigned int tmp;
unsigned int mask; unsigned int mask;
int i; int i;
// transforme la ligne de . et # en un short de 0 et 1 // transforme la ligne de . et # en un short de 0 et 1
list->tetribit = tab_to_bin(line); list->tetribit = tab_to_bin(line);
// cree un mask avec des 1 sur la colonne de droite ft_putstr("BEFORE: ");
print_bits(list->tetribit, 16);
// cree un mask avec des 1 sur la colonne de droite (#...#...#...#...)
mask = (1 << 15) | (1 << 11) | (1 << 7) | (1 << 3); mask = (1 << 15) | (1 << 11) | (1 << 7) | (1 << 3);
// utilise le mask pour trouver la largeur que prend le tetriminos // utilise le mask pour trouver la largeur que prend le tetriminos
i = 0; i = 0;
@@ -78,7 +80,8 @@ void fill_list(char line[], t_fillist *list)
while (mask & list->tetribit && ++i < 4) while (mask & list->tetribit && ++i < 4)
mask >>= 1; mask >>= 1;
list->width = i - list->width; list->width = i - list->width;
// deplace le tetriminos tout en haut a gauche (i - list->width = le nombre de colonne vide a gauche) // deplace le tetriminos tout en haut a gauche
//(i - list->width = le nombre de colonne vide a gauche)
list->tetribit <<= (i - list->width); list->tetribit <<= (i - list->width);
while (!(list->tetribit & (~0u << 12))) while (!(list->tetribit & (~0u << 12)))
list->tetribit <<= 4; list->tetribit <<= 4;
@@ -91,11 +94,15 @@ void fill_list(char line[], t_fillist *list)
list->tetribit = reduce_tetri(list->tetribit, list->width); list->tetribit = reduce_tetri(list->tetribit, list->width);
// imression pour tests // imression pour tests
// ft_putchar('\n'); ft_putchar('\n');
// tmp = list->tetribit; ft_putstr("AFTER: ");
// tmp <<= 16; print_bits(list->tetribit, 16);
// print_map(&tmp, list->width, list->height); ft_putstr("\n");
// tmp >>= 16; tmp = list->tetribit;
tmp <<= 16;
ft_putstr("\n");
print_map(&tmp, list->width, list->height);
tmp >>= 16;
} }
/* /*
@@ -143,7 +150,10 @@ void parse_input(char *input)
tetri[j++] = input[i++]; tetri[j++] = input[i++];
tetri[19] = '\0'; tetri[19] = '\0';
if (check_tetri_errors(tetri)) if (check_tetri_errors(tetri))
print_error("Error: Tetrimino not valid."); {
ft_putstr(tetri);
print_error("\n\nerror: This tetrimino is not valid.\n");
}
add_to_list(tetri, &list); add_to_list(tetri, &list);
while (input[i] && input[i] != '.' && input[i] != '#') while (input[i] && input[i] != '.' && input[i] != '#')
i++; i++;