Advertisement
Unkreatief

Hangman-Game (German) 2

Mar 22nd, 2017
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.20 KB | None | 0 0
  1. #Hangman
  2. import random
  3. from tkinter import *
  4.  
  5. Wort = ""
  6. wort_als_liste = []
  7. Wortanzeige = []
  8. Versuch = ""
  9. Versuchte = []
  10. Fehler = 0
  11. mark_popup_hilfe = 0
  12. msgHilfe = None
  13. Gewonnen= None
  14.  
  15.  
  16. #Funktion======================================================================================
  17. def suche_neues_wort():
  18.     global Wort
  19.     Woerterliste = []
  20.     Woerter = open('G:\Hangman-Projekt\Woerter.txt', 'r')
  21.     for line in Woerter:
  22.         line = line.strip()
  23.         Woerterliste.append(line)
  24.     Wort = Woerterliste[random.randrange(0, len(Woerterliste))]
  25.     Woerter.close()
  26.  
  27. def zerstoere_alte_daten():
  28.     global Gewonnen
  29.     Versuchte = []
  30.     Fehler = 0
  31.     if Gewonnen == True:
  32.         labelSieg.destroy()
  33.         Gewonnen = None
  34.     if Gewonnen == False:
  35.         labelNiederlage.destroy()
  36.         Gewonnen = None
  37.  
  38. def erstelle_wortanzeige():
  39.     global wort_als_liste, Wortanzeige
  40.     for i in range(0, len(Wort), 1):
  41.         wort_als_liste.append(Wort[i])
  42.     for i in range(0, len(Wort), 1):
  43.         Wortanzeige.append("_")
  44.  
  45. def aktualisiere_anzeigen():
  46.     labelFehler.configure(text=("Fehler:", Fehler))
  47.     labelWortanzeige.configure(text=("Gesuchte:", Wortanzeige))
  48.     labelVersuchte.configure(text=("Versuchte:",Versuchte))
  49.     eingabeEingabe.delete(0,END)
  50.        
  51. def start_neue_runde():
  52.     zerstoere_alte_daten()
  53.     suche_neues_wort()
  54.     erstelle_wortanzeige()
  55.     aktualisiere_anzeigen()
  56.  
  57. def popup_hilfe():
  58.     global mark_popup_hilfe, msgHilfe
  59.     if mark_popup_hilfe==0:
  60.         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.")
  61.         msgHilfe.pack()
  62.         mark_popup_hilfe=1
  63.     else:
  64.         msgHilfe.destroy()
  65.         mark_popup_hilfe=0
  66.  
  67. def ist_zeichen_gueltig():
  68.     global Fehler, Wortanzeige, Versuchte, Wort, wort_als_liste
  69.     Versuch = eingabeEingabe.get()
  70.     inside_wort = False
  71.     for i in range(0, len(Wort), 1):
  72.         if Versuch.upper() == Wort[i] or Versuch.lower() == Wort[i]:
  73.             del Wortanzeige[i]
  74.             Wortanzeige.insert(i, Wort[i])
  75.             inside_wort = True
  76.     if inside_wort == False:
  77.         Fehler = Fehler + 1
  78.     Versuchte = Versuchte + [Versuch]
  79.  
  80. def ist_runde_beendet():
  81.     if Wortanzeige == wort_als_liste:
  82.         labelSieg = Label(master=dialogFenster, bg='green', text="Sie haben Gewonnen!")
  83.         labelSieg.place(x=400, y=740)
  84.         Gewonnen = True
  85.     if Fehler == 10:
  86.         labelNiederlage = Label(master=dialogFenster, bg='red', text="Sie haben Verloren!")
  87.         labelSieg.place(x=400, y=740)
  88.         Gewonnen = False
  89.  
  90. def button_eingabe():
  91.     ist_zeichen_gueltig
  92.     ist_runde_beendet()
  93.     aktualisiere_anzeigen()
  94. #Funktion======================================================================================
  95. #Dialogfenster erstellen
  96. dialogFenster = Tk()
  97. dialogFenster.title('Hangman')
  98. dialogFenster.geometry('600x780')
  99.  
  100. suche_neues_wort()
  101. erstelle_wortanzeige()
  102.  
  103. #Labels
  104. labelFehler = Label(master=dialogFenster, text=("Fehler:", Fehler), fg='red', font=("Helevatica", 14))
  105. labelFehler.place(x=10, y=10)
  106.  
  107. labelWortanzeige = Label(master=dialogFenster, text=("Gesucht:", Wortanzeige), fg='blue', bg='white')
  108. labelWortanzeige.place(x=100, y=550, width=400, height=50)
  109.  
  110. labelVersuchte = Label(master=dialogFenster, text=("Versuchte:", Versuchte), fg='blue', bg='white')
  111. labelVersuchte.place(x=100, y=630, width=400, height=50)
  112.  
  113. #Entrys
  114. eingabeEingabe = Entry(master=dialogFenster, bg='#d8d9e3')
  115. eingabeEingabe.place(x=280, y=700, width=60, height=30)
  116.  
  117. #Buttons
  118. buttonHilfe = Button(master=dialogFenster, text="Hilfe", command=lambda: popup_hilfe())
  119. buttonHilfe.place(x=560, y=0, width=40, height=20)
  120.  
  121. buttonEingabe = Button(master=dialogFenster, text="Eingabe", bg='#d8d9e3', command=button_eingabe())
  122. buttonEingabe.place(x=280, y=740, width=60, height=30)
  123.  
  124. buttonstart_neue_runde = Button(master=dialogFenster, text='Neue Runde', command=start_neue_runde())
  125. buttonstart_neue_runde.place(x=120, y=740, width=80, height=30)
  126.  
  127.  
  128. #Dialogfenster aktivieren
  129. dialogFenster.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement