Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* ************************************************************************** */
- /* */
- /* ::: :::::::: */
- /* findbsq.c :+: :+: :+: */
- /* +:+ +:+ +:+ */
- /* By: mtsouria <marvin@42.fr> +#+ +:+ +#+ */
- /* +#+#+#+#+#+ +#+ */
- /* Created: 2016/07/26 20:53:05 by mtsouria #+# #+# */
- /* Updated: 2016/07/27 21:09:42 by mtsouria ### ########.fr */
- /* */
- /* ************************************************************************** */
- #include "libbsq.h"
- bsq *createbsq(void)
- {
- bsq *node;
- if (!(node = malloc(sizeof(bsq))))
- return (0);
- else
- {
- node->nbr = 0;
- node->x = 0;
- node->y = 0;
- }
- return (node);
- }
- void store_bsq(int **map, int x, int y, bsq *node)
- {
- if (map[y][x] > node->nbr)
- {
- node->nbr = map[y][x];
- node->x = x;
- node->y = y;
- }
- }
- void print_bsq(int **map, t_legend *legend, bsq *node)
- {
- int x;
- int y;
- x = 0;
- y = 0;
- while (y < legend->height)
- {
- while (x < legend->length)
- {
- if (x > (node->x - node->nbr) && x <= node->x
- && y > (node->y - node->nbr) && y <= node->y)
- ft_putchar(legend->full);
- else if (map[y][x] == 0)
- ft_putchar(legend->obstacle);
- else
- ft_putchar(legend->empty);
- x++;
- }
- ft_putchar('\n');
- free(*map);
- x = 0;
- y++;
- }
- free(map);
- }
- void ft_if_empty(int **map, bsq *node, int x, int y)
- {
- if (x < 1 || y < 1)
- map[y][x] = 1;
- else
- {
- map[y][x] = map[y - 1][x - 1];
- if ((map[y - 1][x]) < map[y][x])
- map[y][x] = map[y - 1][x];
- if ((map[y][x - 1]) < map[y][x])
- map[y][x] = map[y][x - 1];
- map[y][x]++;
- }
- store_bsq(map, x, y, node);
- }
- void find_bsq(int **map, t_list *head, t_legend *legend, bsq *node)
- {
- t_list *list;
- int x;
- int y;
- x = 0;
- y = 0;
- list = head;
- while (list && node && map && *map && y < legend->height)
- {
- while (x < legend->length)
- {
- if (list->data == legend->obstacle)
- map[y][x] = 0;
- if (list->data == legend->empty)
- ft_if_empty(map, node, x, y);
- x++;
- list = list->next;
- }
- list = list->next;
- y++;
- x = 0;
- }
- print_bsq(map, legend, node);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement