Я пытаюсь создать игру-кликер, но она не работает, почему?

#python #python-3.x #tkinter

#python #python-3.x #tkinter

Вопрос:

Я действительно новичок в python и не пытаюсь сделать что-то супер особенное, и я не знаю, почему мой счетчик кликов учитывает только 1 клик, а затем он больше не считается. Это мой код:

 from tkinter import *

click = 0
mult1 = 0


def mult():
    global mult1
    mult1 = mult1   1


def clicked():
    global click1
    global click2

    click1 = click   1
    click2 = click1   mult1

    label1.configure(text=f'Total Clicks: {click2}', font=("Calibri", 26))


def mult():
    global mult1
    mult1 = mult1   1


def gui():
    global label1
    global gui

    gui = Tk()
    gui.geometry("800x500")
    btn_click = Button(gui, text="Click to add Clicks!", padx=20, pady=20, font=("Times 16", 15), command=clicked).place(x=310, y=430)
    label1 = Label(gui)
    label1.grid(column=0, row=10)
    gui.mainloop()


gui()
  

Комментарии:

1. Потому что click всегда равно 0 — вы никогда не изменяете его. Поэтому click1 = click 1 всегда будет 1

2. Каким было бы исправление?

3. click1 = click1 1

4. click = click 1 (или click = 1 ) обновил бы ее.

Ответ №1:

Во-первых, у вас есть только одна кнопка. mult никогда не вызывается. mult1 из-за этого значение всегда остается равным 0. Во-вторых, вы используете 3 разные переменные ( click , click1 и click2 ), где вам нужна только 1.

 from tkinter import *

total_clicks = 0
clicks_to_add = 1


def mult():
    global clicks_to_add
    clicks_to_add  = 1


def clicked():
    global total_clicks

    total_clicks  = clicks_to_add

    label1.configure(text=f'Total Clicks: {total_clicks}', font=("Calibri", 26))

def main():
    global label1
    global gui

    gui = Tk()
    gui.geometry("800x500")
    btn_click = Button(gui, text="Click to add Clicks!", padx=20, pady=20, font=("Times 16", 15), command=clicked).place(x=310, y=430)
    label1 = Label(gui)
    label1.grid(column=0, row=10)
    gui.mainloop()


main()