





def gen_villes(n):
    return [(random.random(), random.random()) for k in range(n)]


def dessiner_chemin(villes, chemin):
    # dessiner les villes
    for i, (x, y) in enumerate(villes):
        plt.plot([x], [y], 'ro')
        plt.text(x, y, f"{i}")

    # tracer le chemin
    n = len(chemin)
    for i in range(len(villes)):
        j1 = chemin[i]
        j2 = chemin[(i+1)%n] # modulo pour boucler sur 0
        x1, y1 = villes[j1]
        x2, y2 = villes[j2]
        plt.plot([x1, x2], [y1, y2], 'b-')

    plt.show()


villes = gen_villes(10)
chemin = [8, 2, 6, 4, 3, 1, 0, 7, 9, 5]
plot_points(villes, chemin)

