import random, csv, time print("Lerne Vokabeln! Deutsch <---> Englisch") datei = open('vokabeln_extra.csv', 'r', newline='', encoding = 'UTF-8') datei_leser = csv.reader(datei) vokabel_liste = [] vorname = "" nachname = "" def lade_datei(): for zeile in datei_leser: vokabel_liste.append(zeile) #print(vokabel_liste) def überprüfe_eingabe(eingabe,wörter): if eingabe.lower() in wörter: return True else: return False def hole_namen(): #Eingabe: Name while True: global vorname vorname = input("Vorname ... ") global nachname nachname = input("Nachname ... ") #Prüfung des Namens if (len(nachname) + len(vorname)) > 40: print("Error: ungültigen Namen eingegeben!") elif (len(nachname) == 0 or len(vorname) == 0): vorname = "anon" nachname = "ymus" break else: break def schreibe_score(): datei_scores = open("ergebnisse.csv", "a", newline="") datei_schreiber = csv.writer(datei_scores) #Zeit zeit = time.localtime() #print(time.time()) datum = time.strftime("%d.%m.%Y-%H:%M",zeit) datei_schreiber.writerow([vorname, nachname, siege, datum]) datei_scores.close() def drucke_highscores(): #Datei öffnen datei_scores = open('ergebnisse.csv') datei_leser = csv.reader(datei_scores) #Listen anlegen siege_liste = [] siege_max_liste = [] #Daten in Liste übertragen for row in datei_leser: siege_liste.append(row) #print(siege_liste) #3 höchsten Werte in 2te Liste übertragen if len(siege_liste) >= 3: for _ in range(3): sieg_max_item = [0,0,0] for item in siege_liste: if int(item[2]) > int(sieg_max_item[2]): sieg_max_item = item #print(item[2]) #print(item) #print(sieg_max_item) siege_max_liste.append(sieg_max_item) siege_liste.remove(sieg_max_item) #Ausgabe Name, Datum, Siegesserien print("\n---Highscore Liste!---") #Falls weniger als 3 teilgenommen haben if len(siege_max_liste) >= 3: for item in siege_max_liste: print("\n" + item[0], item[1], "(" + item[3] + ")", "\nSiege:", item[2]) elif len(siege_liste) >= 1: for item in siege_liste: print("\n" + item[0], item[1], "(" + item[3] + ")", "\nSiege:", item[2]) print("\n----------------------") datei_scores.close() #print(überprüfe_eingabe("Rechteverwaltung","Rechteverwaltung (bla bla)")) siege = 0 lade_datei() drucke_highscores() hole_namen() def spiele(übersetze_wort, wort): if len(übersetze_wort[1]) > 1: print("Das Wort ist:", übersetze_wort[0] , "(" + übersetze_wort[1] + ")") else: print("Das Wort ist:", übersetze_wort[0]) eingabe = input("Übersetzung ... ") if überprüfe_eingabe(eingabe,wort): print("Hurra! Richtige Eingabe") print("Richtige Wörter:", ", ".join(richtige_wörter)) time.sleep(1) global siege siege += 1 print("Siegesserie:", siege) return 1 elif eingabe == "d" or eingabe == "bitte helfen sie mir": siege = 0 #print("Das Wort war:", wort) return 2 else: print("falsche Eingabe") time.sleep(1) return 3 while True: random.seed() #sprache = random.randint(0,1) sprache = 0 nummer = random.randint(1,len(vokabel_liste) - 1) versuche = 3 for _ in range(3): if sprache == 0: übersetze_wort = vokabel_liste[nummer][:sprache + 2] #print(übersetze_wort) richtige_wörter = vokabel_liste[nummer][2:] #print(richtige_wörter) ergebnis = spiele(übersetze_wort, richtige_wörter) if ergebnis == 1 or ergebnis == 2: break if sprache == 1: übersetze_wort = vokabel_liste[nummer][sprache] wort = vokabel_liste[nummer][0] ergebnis = spiele(übersetze_wort, wort) if ergebnis == 1 or ergebnis == 2: break versuche = versuche - 1 if versuche!= 0: print("Du hast noch", versuche, "Versuche") if ergebnis == 3 or ergebnis == 2: print("Das Wort war/waren:", ", ".join(richtige_wörter)) time.sleep(1) schreibe_score() siege = 0 drucke_highscores() weiterspielen = input("weiterspielen? Ja(j) oder Nein(n) ... ") if weiterspielen.lower() != "j": break datei.close()