Mar-22-2017, 12:46 AM
(This post was last modified: Mar-22-2017, 12:46 AM by Unkreatief.)
Hey! I'm new to this board, hope this is the right place to search for help. Short introduction: I'm a 17y/o girl from Russia learning Python currently who tries to program a Hangman game at school but doesn't make any progress as I don't know how to fix it. My code: pastebin com tRnV7rLz
Sorry for my bad English btw ..
The problem is that the labels ain't refreshing; like, I start the game and whenever I guess the first letter correctly it says I've already won.. And it basically just doesn't show any kind of progress in the game.
I'd be glad about any kind of help :) Sorry about the code being German ..
Sorry for my bad English btw ..
The problem is that the labels ain't refreshing; like, I start the game and whenever I guess the first letter correctly it says I've already won.. And it basically just doesn't show any kind of progress in the game.
I'd be glad about any kind of help :) Sorry about the code being German ..
#Hangman [/font][/color] import random import time from tkinter import * Wort = "" Wort2 = [] Wortlis = [] Wortanzeige = [] Versuch = "" Versuchte = [] Fehler = 0 inside = False mark = 0 msgHilfe = 0 labelSieg = 0 labelNiederlage = 0 Niederlage = False Sieg = False #Funktion====================================================================================== def newRound(): global Gewonnen, Verloren, Fehler, Wortanzeige, Wort, Wort2, labelNiederlage, labelSieg, Niederlage, Sieg Woerter = open('E:\Hangman-Projekt\Woerter.txt', 'r') Woerterliste = [] Wort2 = [] Versuchte = [] Fehler = 0 if Sieg == True: labelSieg.destroy() Sieg = False if Niederlage== True: labelNiederlage.destroy() Niederlage = False for line in Woerter: line = line.strip() Woerterliste.append(line) Wort = Woerterliste[random.randrange(0, len(Woerterliste))] for i in range(1, len(Wort)+1, 1): Wort2.append(Wort[i - 1]) for i in range(1, len(Wort)+1, 1): Wortanzeige.append("_") Woerter.close() def popupHilfe(): global mark, msgHilfe #Durch global ist der Zugriff auf die Variablen ermöglicht if mark==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() #Sorgt für eine "schöne" Plazierung des Popup mark=1 else: msgHilfe.destroy() mark=0 def inspection(): global Fehler, Wortanzeige, Versuchte, inside, Wort, Wort2, labelSieg, laberNiederlage, Sieg, Niederlage Versuch = eingabeEingabe.get() inside = False for i in range(1, len(Wort) + 1, 1): if Versuch.upper() == Wort[i - 1] or Versuch.lower() == Wort[i - 1]: del Wortanzeige[i - 1] Wortanzeige.insert(i - 1, Wort[i-1]) inside = True if inside == False: Fehler = Fehler + 1 Versuchte = Versuchte + [Versuch] if Wortanzeige == Wort2: #Ist die Runde beendet? labelSieg = Label(master=dialogFenster, bg='green', text="Sie haben Gewonnen!") labelSieg.place(x=400, y=740) Sieg = True if Fehler == 10: labelNiederlage = Label(master=dialogFenster, bg='red', text="Sie haben Verloren!") labelSieg.place(x=400, y=740) Niederlage = True #Funktion====================================================================================== #Dialogfenster erstellen dialogFenster = Tk() dialogFenster.title('Hangman') dialogFenster.geometry('600x780') #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: popupHilfe()) #mit lambda lassen sich beliebig vile anonyme kunktionen erstellen. Ohne wäre hier das popup dauerhaft angezeigt... buttonHilfe.place(x=560, y=0, width=40, height=20) buttonEingabe = Button(master=dialogFenster, text="Eingabe", bg='#d8d9e3', command=lambda: inspection()) buttonEingabe.place(x=280, y=740, width=60, height=30) buttonnewRound = Button(master=dialogFenster, text='Neue Runde', command=lambda: newRound()) buttonnewRound.place(x=120, y=740, width=80, height=30) #Dialogfenster aktivieren [color=#222222][font=verdana, arial, helvetica, sans-serif]dialogFenster.mainloop()