Ejemplo n.º 1
0
Archivo: main.c Proyecto: Balkhagal/42
intft_solve(char grid[6][10], int position)
{
	int        i;
	int        j;
	int 								       compt;
	static int      comptmax;
	int             posmax;

	if (position == 6 * 10)
		return (0);
	j = position / 6;
	i = position % 10;
	compt = 0;
	if (grid[j][i] == OBSTACLE)
		return(ft_solve(grid, position + 1));
	while (i != OBSTACLE)
	{
		while (j != OBSTACLE)
		{
			j++;
			compt++;
		}
		i++;
	}
	if (comptmax < compt)
	{
		comptmax = compt;
		posmax = position;
		j = posmax / 6;
		i = posmax % 10;
		grid[j][i] = FILL;
	}
	ft_solve(grid, position + 1);
	return (0);
}
Ejemplo n.º 2
0
void	ft_main2(int fd)
{
	char		*file;
	t_map		map;
	t_tetri		*tetri;

	if (!(file = ft_getfile(fd, &map)) ||
			!(ft_check_file(file)))
		ft_putstr("error\n");
	else
	{
		tetri = ft_create_tetri(map);
		ft_fill(tetri, file, map);
		ft_init_map(&map);
		map.ret = 1;
		ft_solve(tetri, &map);
		while (map.ret == 0)
		{
			map.size++;
			ft_solve(tetri, &map);
		}
		ft_print_map(tetri, map);
		ft_free(&tetri);
	}
}
Ejemplo n.º 3
0
int	ft_solve(char **grid, int pos, int *solved, char (*res_p)[9][9])
{
    char    c;

    c = '0';
    if (pos == 81)
    {
	++(*solved);
	ft_strtabcpy(res_p, grid);
	return (1);
    }
    if (grid[pos / 9][pos % 9] != '.')
	return (ft_solve(grid, pos + 1, solved, res_p));
    while (++c <= '9')
    {
	if (!ft_checknb(grid, pos, c))
	{
	    grid[pos / 9][pos % 9] = c;
	    if (ft_solve(grid, pos + 1, solved, res_p))
	    {
		if (*solved > 1)
		    return (*solved);
	    }
	    grid[pos / 9][pos % 9] = '.';
	}
    }
    return (*solved);
}
Ejemplo n.º 4
0
Archivo: ft_itoa.c Proyecto: m-ab/fdf
char		*ft_itoa(int n)
{
	char	*str;
	int		count;
	int		sign;

	sign = 0;
	if (n == -2147483648)
		return (ft_strdup("-2147483648"));
	if (n < 0)
	{
		n = -n;
		count = ft_len(n) + 1;
		sign = 1;
	}
	else
		count = ft_len(n);
	if ((str = (char *)malloc(sizeof(*str) * (count + 1))) == NULL)
		return (NULL);
	if (n == 0)
		str[0] = '0';
	str[count--] = '\0';
	str = ft_solve(str, count, n);
	if (sign == 1)
		str[0] = '-';
	return (str);
}
void	ft_eight_queens_puzzle_2(void)
{
	int	n;

	n = 8;
	ft_solve(1, n);
}
Ejemplo n.º 6
0
int		ft_progress(char *tab)
{
	int result;
	int i;
	int ope;
	int a;
	int b;

	i = 0;
	while (tab[++i] != '\0')
	{
		if (ft_if_ope(tab[i], tab[i - 1], tab[i + 1]) == 1)
		{
			result = 1;
			ope = tab[i];
			tab[i--] = ' ';
			a = ft_calc_ab(tab, &i);
			b = ft_calc_ab(tab, &i);
			result = ft_solve(b, a, ope);
			ft_itoa(tab, i, result);
		}
	}
	free(tab);
	return (result);
}
Ejemplo n.º 7
0
void	ft_exe_main(char *src)
{
	char	**tab;
	char	*str;
	t_coord	**pieces;

	str = ft_str_without_back_slash(src);
	tab = ft_str_to_tab(str);
	pieces = ft_store_pieces(tab, ft_nb_piece(str), ft_nb_piece(str));
	ft_solve(pieces, ft_nb_piece(str), 1);
}
Ejemplo n.º 8
0
int	main(int argc, char **argv)
{
    char    result[9][9];
    int	    i;

    i = 0;
    if (argc != 10 || ft_checklines(argv + 1)
	|| 1 != ft_solve(argv + 1, 0, &i, &result))
	write(1, "Erreur\n", 7);
    else
	ft_putgrid(result);
    return (0);
}
Ejemplo n.º 9
0
Archivo: main.c Proyecto: Balkhagal/42
int 	main(int argc, char **argv)
{
	char grid[6][10]; //tableau fixe

	if (ft_verif_parameter(argc, argv) == 1)
	{
		ft_putstr("Erreur\n");
		return (0);
	}
	ft_init_grid(argc, argv, grid);
	ft_solve(grid, 0);
	ft_print_grid(grid);
	return (0);
}
void	ft_solve(int row, int n)
{
	int	col;

	col = 1;
	while (col <= n)
	{
		if (ft_check(row, col) == 1)
		{
			board[row] = col; /* placing queen b'cos no attacks */
			if ( row == n) /* end of grid */
				ft_print(n); /* print out grid */
			else /* try next position */
				ft_solve(row + 1, n);
		}
		col++;
	}
}
Ejemplo n.º 11
0
int				fillit(char *argv)
{
	char		**tetros;
	int			nb_tetros;
	t_tetros	*begin;
	int			i;

	i = 0;
	nb_tetros = 0;
	tetros = ft_read_argv(argv, &nb_tetros);
	if (!tetros)
		return (0);
	if (!ft_valid_tetros(tetros, nb_tetros))
		return (0);
	begin = ft_create_list(tetros, nb_tetros);
	ft_free_tetros(tetros, nb_tetros);
	ft_solve(begin, nb_tetros);
	return (1);
}
Ejemplo n.º 12
0
int		main(int ac, char **av)
{
	t_tetr	*start;
	int		nb;

	start = NULL;
	if (ac == 2)
	{
		if ((nb = ft_get_tetr(av[1], &start)) == -1)
		{
			ft_error();
			ft_free_list(start);
			return (0);
		}
		nb = ft_size_map(nb);
		ft_solve(nb, start);
	}
	else
		ft_usage();
}
Ejemplo n.º 13
0
char		*ft_itoa(int n)
{
	char	*str;
	int		len;
	int		realn;

	realn = n;
	str = NULL;
	len = 0;
	if (n == 0 || n == -2147483648)
	{
		str = ft_special(str, n);
		return (str);
	}
	if (n < 0)
	{
		len = 1;
		n = -n;
	}
	str = ft_solve(str, len, n, realn);
	return (str);
}
Ejemplo n.º 14
0
int				main(int argc, char **argv)
{
	t_vars		*vars;
	char		*str;

	if (argc <= 2)
	{
		ft_putendl_fd("Error", 2);
		return (1);
	}
	vars = ft_initvars();
	str = ft_some_option(vars, argc, argv);
	if (str)
		return (1);
	ft_buildlist(vars, argc, argv);

	// ft_dumplist(vars->l_a);

	if (vars->i == 1)
		ft_interactive(vars, str);
	else
		ft_solve(vars);
	return (0);
}