Python Forum
Hangman-Game (German code) ..
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Hangman-Game (German code) ..
#1
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 ..

#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()
Reply
#2
Hi Unkreatief!

I see you have also posted the same request on the German python-forum.de and received much feedback already.

Duplicating questions in different places like this is considered bad practice and not too nice for each helping team who don't know of each others. Please see our sticky and the helpful text How to ask questions smartly for further details.

Thanks and have fun with python! :)
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Homework Hangman Game jagr29 3 2,294 Jan-20-2022, 10:38 PM
Last Post: deanhystad
  restarting game code zyada7med 5 4,553 Sep-03-2019, 09:24 PM
Last Post: ichabod801
  Asking for help in my code for a "Guess the number" game. Domz 5 3,747 Aug-14-2019, 12:35 PM
Last Post: perfringo
  Code: Creating a basic python game? searching1 5 3,377 Nov-12-2018, 05:18 AM
Last Post: searching1
  Hangman game jsirota 2 3,657 Nov-06-2017, 06:39 PM
Last Post: gruntfutuk

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020