def dijkstra(): global filename_input ok = False while not ok: filename_input = call_generate() if filename_input is not None: ok = True path_output = raw_input("Dove salvare il file di output? ") path_output = path_output if path_output[-1] == "/" else path_output + "/" matches = make_matches(filename_input) start = time() outs = [] for match in matches: match.makeGraph() m = match.minMovesDijkstra() if str(m) == 'inf': m = 'impossibile' outs.append(str(m)) print "\nAlgoritmo eseguito: Dijkstra sul grafo delle mosse" print "Tempo d'esecuzione:", time() - start, "secondi\n" generate_file(1, outs, path_output) raise SystemExit()
def call_maometto(): maometto_menu() global filename_input ok = False while not ok: filename_input = call_generate() if filename_input is not None: ok = True path_output = raw_input("Dove salvare il file di output? ") path_output = path_output if path_output[-1] == "/" else path_output + "/" print("") print("-------------------------------------------------------------------") print(" TARGET della DISTRIBUZIONE - ISTRUZIONI ") print("-------------------------------------------------------------------") print("\nCome spiegato nella relazione abbiamo implementato piu'\n" "generatori di targetes. Quale generatore di targets usare?\n" "(0 per avere un solo target, 1 per avere target con un intorno\n" "di 1 casella (default), 2 per avere con un intorno di 2 caselle,\n" "3 per avere target con target e le posizioni dei cavalli e \n" "4 per avere tutta la scacchiera\n") type = int(raw_input("Inserire una tipologia di target: ")) if type < 0 or type > 4: type = 1 print("Abbiamo scelto per te il generatore di default!\n") matches = make_matches(filename_input) start = time() outs = [] for match in matches: montagna(match, int(type), outs, False) print "\nAlgoritmo eseguito: Montagna" print "Tempo d'esecuzione:", time() - start, "secondi\n" generate_file(1, outs, path_output) raise SystemExit()
def call_generate(): global density, k density = 7 k = 1 generate = raw_input("Generare un nuovo input? (S/N) ") generate = generate.lower() if generate == "s": generate_menu() num = raw_input("Quanti casi generare? (<= 100) ") if int(num) < 1 or int(num) > 100: print("Si prega di seguire le istruzioni, scegliere una opzione valida (da 1 a 100)") return None path_input = raw_input("Dove salvare il file? ") path_input = path_input if path_input[-1] == "/" else path_input + "/" re_density = raw_input("Generare le scacchiere con una densita' prefissata? (S/N) ") re_density = re_density.lower() if re_density == "n": req_density = raw_input("Con quale densita' generare le scacchiere? (Disponibili 1:10% 2:20% 3:30% 4:40% 5:100%) ") if req_density == "1": density = 6 elif req_density == "2": density = 5 elif req_density == "3": density = 3 elif req_density == "4": density = 2 elif req_density == "5": density = 1 else: print("Si prega di seguire le istruzioni, scegliere una opzione valida (da 1 a 5)") return None elif re_density == "s": density = 7 else: print("Si prega di seguire le istruzioni, inserire o S (o s) o N (o n)") return None re_k_rand = raw_input("Generare il match con un k casuale? (S/N) ") re_k_rand = re_k_rand.lower() if re_k_rand == "n": k_rand = False k = raw_input("Scegliere un k da 1 a 9 ") if len(k) > 1: k = k[0] k = int(k) if k < 0 or k > 9: print("Si prega di seguire le istruzioni, inserire una opzione valide (da 1 a 9)") return None elif re_k_rand == "s": k_rand = True k = 1 else: print("Si prega di seguire le istruzioni, inserire o S (o s) o N (o n)") return None filename_input = generate_file(0, generate_input(int(num), density, k_rand, k, False), path_input) elif generate == "n": ok = False while not ok: filename_input = raw_input("Quale file usare? ") filename_input = filename_input if filename_input[-4:] == ".txt" else filename_input + ".txt" if not os.path.exists(filename_input): print("Non esiste nessun file con questo nome!") else: ok = True else: print("Si prega di seguire le istruzioni, inserire o S (o s) o N (o n)") return None return filename_input