示例#1
0
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()
示例#2
0
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()
示例#3
0
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