Я работаю с нашим проектом по созданию слова гадания. но у меня проблема с петлями и буквами, которые нужно добавить на labelGuessResult
. Пожалуйста, помогите мне решить мои коды и помогите мне понять, в чем проблема с моими кодами. результат, который я хотел бы получить, - это правильные угаданные буквы, которые отображаются в labelGuessResult
, и каждый раз, когда я ввожу правильное предположение, оно будет добавляться вот так: s _ren
.
from tkinter import *
import tkinter.messagebox
from random import choice
randomWords = choice(["yeti", "siren", "lich"])
lives = 7
guessedWord = []
guessedWrong = []
#defining the main class
class window(Frame):
#defining main window initialization
def __init__(self, master=None):
Frame.__init__(self, master)
self.master = master
self.init_window()
#defining main frame
def init_window(self):
self.master.title("H A N G M A N")
self.master.resizable(False, False)
self.pack(fill=BOTH, expand=1)
self.label1 = Label(self, text="Guessed the %s letter word: " % (len(randomWords)))
self.label1.grid(row=1, column=1, ipadx=5, ipady=5, sticky=W)
'''DISPLAY WORD'''
self.labelGuessResult = Label(self, text=len(randomWords)* " _")
self.labelGuessResult.grid(row=1, column=2)
'''GUESS INPUT'''
self.guessEnt = Entry(self)
self.guessEnt.grid(row=1, column=3)
guess = self.guessEnt.get()
self.label2 = Label(self, text="Message: ")
self.label2.grid(row=2, column=1, ipadx=5, ipady=5, sticky=W)
self.labelMessage = Label(self, text=guessedWord + guessedWrong)
self.labelMessage.grid(row=2, column=2)
self.label3 = Label(self, text="Guessed Letters: ")
self.label3.grid(row=3, column=1, ipadx=5, ipady=5, sticky=W)
self.lblGuessed = Label(self, text=guessedWord)
self.lblGuessed.grid(row=3, column=2)
self.label4 = Label(self, text="Lives left: ")
self.label4.grid(row=4, column=1, ipadx=5, ipady=5, sticky=W)
self.lblLives = Label(self, text=lives)
self.lblLives.grid(row=4, column=2)
def checkWord():
while True:
out = ""
for letter in randomWords:
if letter in guessedWord:
self.labelGuessResult.config(text=out+letter)
else:
self.labelGuessResult.config(text=out+" _")
if out == randomWords:
self.labelMessage.config("You have guesed the ", randomWords)
break
if guess in guessedWord:
self.labelMessage.config(text="already guessed that!")
elif guess in randomWords:
self.labelMessage.config(text="correct!")
guessedWord.append(guess)
else:
self.labelMessage.config(text="Wrong!")
guessedWrong.append(guess)
print()
'''BUTTON GUESS'''
self.submitBTN = Button(self, text="Guess", command=checkWord)
self.submitBTN.grid(row=1,column=4)
frames = Tk() #creates the frame
frames.geometry("500x450") #sets frame size
app = window(frames) #calls and runs the frame within the class
frames.mainloop() #runs the frame continuously