Python GUI gra w zgadywanie liczby

0

Witam!
Mam problem z kodem a mianowicie jak chce dorzucić do niego ilość prób wyświetlane przez Label to niestety nie mogę zmienić wartości tries w klasie.
Poniżej wrzucam mój kod z nieudolna próba (jedną z wielu) dodania wartości tries

'''
from tkinter import *
import random

class Application(Frame):

def __init__(self, master):
    super(Application, self).__init__(master)
    self.grid()
    self.number = random.randint(1, 101)
    self.tries = 10
    self.create_widget()

def create_widget(self):
    Label(self, text = "Gra w zgadywanie!!! Ja wymyslam ty zgadujesz").grid(row = 0, column = 0, columnspan = 4)

    # pole do wpisywania zgadywanej liczby
    Label(self, text = 'Podaj liczbe: ').grid(row = 1, column = 0, sticky = W)
    # to jest obiekt stworzony wewnatrz klasy ktory umozliwia wprowadzanie danych przez uzytkownika
    self.num_guess = Entry(self)
    self.num_guess.grid(row = 1, column = 1, sticky = W)

    # pole do wyswietlania pozostalych prob
    Label(self, text = f'Pozostalo ci prob: {str(self.tries)}').grid(row = 2, column = 0, sticky = W)

    # przycisk do uruchamiania zgadywania
    Button(self, text = 'Zgaduj!', command = self.game).grid(row = 3, column = 0, sticky = W)

    # pole do wyswietlania odpowiedzi komputera
    self.answer = Text(self, width = 35, height = 2, wrap = WORD)
    self.answer.grid(row = 4, column = 0, columnspan = 3)

def game(self):
    guess = str(self.num_guess.get())
    number = str(self.number)

    if self.tries > 0:
        pass
    else:
        answer = f'Przegrales! Ta liczba {number}'

    if guess > number:
        answer = 'Za duzo!'
    elif guess < number:
        answer = 'Za malo!'
    else:
        answer = f'Zgadles! Ta liczba to {number}'
    self.tries_update
    
    self.answer.delete(0.0, END)
    self.answer.insert(0.0, answer)

def tries_update(self):
    return self.tries - 1

root = Tk()
root.title('Gra w zgadywanie!')
app = Application(root)
root.mainloop()
'''

0

self.tries_update źle wywołujesz, bez ()
a sama funkcja tries_update nic nie robi, zwraca wartość z którą się nic nie dzieje.
Co do update'u wartości Labelka, jest na to kilka sposobów, poczytaj tu: https://www.delftstack.com/howto/python-tkinter/how-to-change-the-tkinter-label-text/

0

Ok, dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1