import random
import itertools

class ZickZack_10:
    def __init__(self):
        self.zeitvorgabe = 30
        self.entfernungstabelle_einlesen()
        self.alleStationen = "Start"
        self.stationsliste = []
        self.zeit = 0

        print("\n-------------Starte dein Rennen!_________________")
        print("")

    def entfernungstabelle_einlesen(self):
        try:
            with open("entfernung.csv", "r") as file:
                self.feld = [list(map(int, line.strip().split(";"))) for line in file]
        except FileNotFoundError:
            print("Textdatei nicht gefunden!")
    
    def kürzeste_route(self):
        stationen = [1,2,3,4,5,6,7,8,9,10]				#alle Stationen
        entfernungsminimum = 100						#erstes Minimum auf hohen Wert setzen
        for p in itertools.permutations(stationen):		#alle Permutationen der Stationen erzeugen
            entfernung = 0
            #el = []		zur Kontrolle der einzelnen Entfernungen
            liste = [0] + list(p)						#Startstation anhängen
            for i in range(0, 10):						#Entfernung jeder Route ermitteln
                self.aktStation = liste[i]
                self.nextStation = liste[i + 1]
                self.entfernungswert_finden()
                entfernung += self.entfernung
                #el += [self.entfernung]
            if entfernung < entfernungsminimum:			#Beste Route speichern (und ausgeben)
                beste_route = liste
                entfernungsminimum = entfernung
                #elmin = el
        print("Beste Route:",beste_route,"Kürzeste Entfernung:",entfernungsminimum)
        #print("Beste Route:",beste_route,"Kürzeste Entfernung:",entfernungsminimum,"elmin:",elmin)
     
    def entfernungswert_finden(self):
        self.entfernung = self.feld[self.aktStation + 1][self.nextStation + 1]
        self.zeit += self.entfernung

spiel = ZickZack_10()
spiel.kürzeste_route()
