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); }
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); } }
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); }
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); }
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); }
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); }
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); }
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++; } }
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); }
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(); }
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); }
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); }