Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Hangman
- import random
- from tkinter import *
- Wort = ""
- wort_als_liste = []
- Wortanzeige = []
- Versuch = ""
- Versuchte = []
- Fehler = 0
- mark_popup_hilfe = 0
- msgHilfe = None
- Gewonnen= None
- #Funktion======================================================================================
- def suche_neues_wort():
- global Wort
- Woerterliste = []
- Woerter = open('G:\Hangman-Projekt\Woerter.txt', 'r')
- for line in Woerter:
- line = line.strip()
- Woerterliste.append(line)
- Wort = Woerterliste[random.randrange(0, len(Woerterliste))]
- Woerter.close()
- def zerstoere_alte_daten():
- global Gewonnen
- Versuchte = []
- Fehler = 0
- if Gewonnen == True:
- labelSieg.destroy()
- Gewonnen = None
- if Gewonnen == False:
- labelNiederlage.destroy()
- Gewonnen = None
- def erstelle_wortanzeige():
- global wort_als_liste, Wortanzeige
- for i in range(0, len(Wort), 1):
- wort_als_liste.append(Wort[i])
- for i in range(0, len(Wort), 1):
- Wortanzeige.append("_")
- def aktualisiere_anzeigen():
- labelFehler.configure(text=("Fehler:", Fehler))
- labelWortanzeige.configure(text=("Gesuchte:", Wortanzeige))
- labelVersuchte.configure(text=("Versuchte:",Versuchte))
- eingabeEingabe.delete(0,END)
- def start_neue_runde():
- zerstoere_alte_daten()
- suche_neues_wort()
- erstelle_wortanzeige()
- aktualisiere_anzeigen()
- def popup_hilfe():
- global mark_popup_hilfe, msgHilfe
- if mark_popup_hilfe==0:
- msgHilfe=Message(dialogFenster,text="Hangman:\nErraten sie das Gesuchte Wort, indem sie nach und Nach einzelne \nBuchstaben erraten.\nVersuchen Sie dies mit möglichst wenigen Versuchen, \nda ihnen bei jedem Fehler ein Versuch abgezogen wird.")
- msgHilfe.pack()
- mark_popup_hilfe=1
- else:
- msgHilfe.destroy()
- mark_popup_hilfe=0
- def ist_zeichen_gueltig():
- global Fehler, Wortanzeige, Versuchte, Wort, wort_als_liste
- Versuch = eingabeEingabe.get()
- inside_wort = False
- for i in range(0, len(Wort), 1):
- if Versuch.upper() == Wort[i] or Versuch.lower() == Wort[i]:
- del Wortanzeige[i]
- Wortanzeige.insert(i, Wort[i])
- inside_wort = True
- if inside_wort == False:
- Fehler = Fehler + 1
- Versuchte = Versuchte + [Versuch]
- def ist_runde_beendet():
- if Wortanzeige == wort_als_liste:
- labelSieg = Label(master=dialogFenster, bg='green', text="Sie haben Gewonnen!")
- labelSieg.place(x=400, y=740)
- Gewonnen = True
- if Fehler == 10:
- labelNiederlage = Label(master=dialogFenster, bg='red', text="Sie haben Verloren!")
- labelSieg.place(x=400, y=740)
- Gewonnen = False
- def button_eingabe():
- ist_zeichen_gueltig
- ist_runde_beendet()
- aktualisiere_anzeigen()
- #Funktion======================================================================================
- #Dialogfenster erstellen
- dialogFenster = Tk()
- dialogFenster.title('Hangman')
- dialogFenster.geometry('600x780')
- suche_neues_wort()
- erstelle_wortanzeige()
- #Labels
- labelFehler = Label(master=dialogFenster, text=("Fehler:", Fehler), fg='red', font=("Helevatica", 14))
- labelFehler.place(x=10, y=10)
- labelWortanzeige = Label(master=dialogFenster, text=("Gesucht:", Wortanzeige), fg='blue', bg='white')
- labelWortanzeige.place(x=100, y=550, width=400, height=50)
- labelVersuchte = Label(master=dialogFenster, text=("Versuchte:", Versuchte), fg='blue', bg='white')
- labelVersuchte.place(x=100, y=630, width=400, height=50)
- #Entrys
- eingabeEingabe = Entry(master=dialogFenster, bg='#d8d9e3')
- eingabeEingabe.place(x=280, y=700, width=60, height=30)
- #Buttons
- buttonHilfe = Button(master=dialogFenster, text="Hilfe", command=lambda: popup_hilfe())
- buttonHilfe.place(x=560, y=0, width=40, height=20)
- buttonEingabe = Button(master=dialogFenster, text="Eingabe", bg='#d8d9e3', command=button_eingabe())
- buttonEingabe.place(x=280, y=740, width=60, height=30)
- buttonstart_neue_runde = Button(master=dialogFenster, text='Neue Runde', command=start_neue_runde())
- buttonstart_neue_runde.place(x=120, y=740, width=80, height=30)
- #Dialogfenster aktivieren
- dialogFenster.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement