/
ft_bit_reset.c
61 lines (55 loc) · 1.65 KB
/
ft_bit_reset.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_bit_reset.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gubourge <gubourge@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2016/03/21 16:12:53 by gubourge #+# #+# */
/* Updated: 2016/03/25 14:33:37 by daugier ### ########.fr */
/* */
/* ************************************************************************** */
#include "fillit.h"
void bit_convert(char *buf, t_tetri *tetris)
{
int tab[3];
int power;
I = -1;
J = -1;
tetris->tetris = (t_tetris2*)malloc(sizeof(t_tetris2) * tetris->nb_tetris);
while (buf[++I])
{
K = 0;
ft_init_tab(TET[++J].tetris, 16);
TET[J].carac = 'A' + J;
while ((buf[I] != '\n' && buf[I + 1] != '\n') && buf[I--])
{
power = 0;
while (buf[++I] != '\n')
{
if (buf[I] == '#')
TET[J].tetris[K] += ft_power(2, power);
power++;
}
K++;
I++;
}
bit_reset(TET[J].tetris, 4);
}
}
int is_more_left(int *tab, int size)
{
int i;
i = -1;
while (++i < size)
if (tab[i] & 1)
return (0);
return (1);
}
void bit_reset(int *tab, int size)
{
while (tab[0] == 0)
bit_up(tab, size);
while (is_more_left(tab, size))
bit_left(tab, size);
}