char valid_grid(char grid[9][9], char y, char x, char mode) { char n; if (grid[y][x] != 0) return (ret_grid(grid, y, x, mode)); n = 1; while (n <= 9) { if (n_valid(grid, y, x, n) == 0) { grid[y][x] = n; if (y == 8 && x == 8) { if (mode == 1) aff_grid(grid, y, x, mode); return (mode^1); } if (valid_grid(grid, ((x + 1) == 9) ? (y + 1) : (y), (x + 1) % 9, mode)) return (1); } n++; } grid[y][x] = 0; return (0); }
char ret_grid(char grid[9][9], char y, char x, char mode) { if (y == 8 && x == 8) { if (mode == 1) aff_grid(grid, y, x, mode); return (mode^1); } return (valid_grid(grid, ((x + 1) == 9) ? (y + 1) : (y), (x + 1) % 9, mode)); }
int main(int argc, char **argv) { t_vm *vm; int i; if ((vm = malloc(sizeof(t_vm))) == NULL) my_print_error("Error with a memory allocation\n"); if ((vm->arena = malloc(sizeof(t_vm))) == NULL) my_print_error("Error with a memory allocation\n"); init_arena(vm->arena->arena, MEM_SIZE); check_arg(argc); i = check_dump(vm, argv); check_champ(vm, argc, argv, i); init_champs(vm); my_parsing(vm, argc, argv, i); init_mlx(vm); aff_grid(vm); my_hook(vm); corewar(vm); return (0); }