Top.Mail.Ru
Ответы

Срочно, помогите пожалуйста сделать рабочий счетчик для моей программы, долго пытался но все равно не выходит

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
 #Счетчик обозначен функцией score()
from tkinter import * 

window = Tk()  
window.geometry('700x600') 
window.title('SchoolGame') 
window['bg'] = 'ghost white' 

 
def draw_home_button():  
    b = Button(text = 'Домой', font = ('Arial', 24), fg = 'black',bg = 'firebrick1', command = draw_menu)  
    b.place(x = 25, y = 500,width = 150)  

def clear():  
    all_widgets = window.place_slaves()  
    for i in all_widgets:  
        i.destroy()  
    draw_home_button() 
    score() 

def game():  
    global cur_q, points  
    def check():  
        global cur_q, points  
        answer = var.get()  
        if bool(answer) == facts[cur_q]['right']:  
            points += 1  
        if cur_q < len(facts) - 1:  
            cur_q += 1  
            fact['text'] = facts[cur_q]['text']  
        else:  
            points_label = Label(text = 'Вы набрали ' + str(points) + ' очка',font = ('Courier New Greek', 34), fg = 'red', bg = 'ghost white')  
            points_label.place(x = 0, y = 0, width = 700,height = 500)  

    all_widgets = window.place_slaves()  
    for i in all_widgets:  
        i.destroy()  
    draw_home_button()  
    score() 

    window.title('Тестирование по геометрии')  
    facts = [  
    {'text': 'Медиана-линия,соединяющая вершину треугольника с серединой его противоположной стороны', 'right': 1},  
    {'text': 'Сумма углов прямоугольника-180 градусов', 'right': 0},  
    {'text': 'В прямоугольном треугольнике самая большая сторона-гипотинуза', 'right': 1},  
    {'text': 'биссектриса делит стороны пополам', 'right':0}, 
    {'text': 'Гипотинуза всегда больше двух катетов', 'right':0} 
    ]  


    cur_q = 0  
    points = 0  
 
    label_title = Label(text = 'Тестирование по геометрии', font = ('Arial',24), fg = 'black', bg = 'yellow')  
    label_title.place(width = 700, height = 50, x = 0,y = 0)  

    fact = Message(text = facts[cur_q]['text'], font = ('Arial',14), width = 680, borderwidth=0, bg = 'ghost white')  
    fact.configure(justify=CENTER)  
    fact.place(x=30, y=70)  

    var = IntVar()  
    true = Radiobutton(text = 'Правда',variable=var, value = 1, bg = 'ghost white')  
    true.place(x = 10, y = 120)  

    false = Radiobutton(text = 'Ложь',variable=var, value = 0, bg = 'ghost white')  
    false.place(x = 10,y = 170)  

    b = Button(text = 'Ответить', font = ('Arial',24), fg = 'black', command = check)  
    b.place(x = 260,y = 150)  

def score(): 
    global points,rekord 
    points = 0 
    rekord = 0 
    if rekord<points: 
        rekord += 1 
    label_rekord = Label(text = rekord,font = ('Nyala',16),fg = 'black', bg = 'ghost white') 
    label_rekord.place(x = 640, y = 525) 
    label_score = Label(text = 'Всего очков:', font = ('Nyala',16), fg = 'black', bg = 'ghost white') 
    label_score.place(x = 500, y = 525) 

def draw_menu():  
    clear()  
    score() 
    label_title = Label(text = 'Выберите режим игры', font = ('Arial',24), fg = 'black', bg = 'light sky blue')  
    label_title.place(width = 700, height = 50,x = 0, y = 0)  

    b_1 = Button(text = 'Математические задачи', font = ('Nirmala UI Semilight', 16), fg = 'black',bg = 'cyan', command = game)  
    b_1.place(x = 25, y = 75, width = 300)  

    b_2 = Button(text = 'Задания на другие темы', font = ('Nirmala UI Semilight', 16), fg = 'black',bg = 'cyan', command = clear)  
    b_2.place(x = 375, y = 75, width = 300)  

    b_3 = Button(text = 'Развитие реакции', font = ('Nirmala UI Semilight', 16), fg = 'black',bg = 'cyan', command = clear) 
    b_3.place(x = 200, y = 150, width = 300) 
draw_menu() 

window.mainloop() 
По дате
По рейтингу
Аватар пользователя
Мастер

Потому что ты присваиваешь переменным 0, условие не выполняется. А rekords вообще впервые в коде появляется в этой функции, непонятно, что за переменная и за что она отвечает.

Аватар пользователя
Просветленный

У тебя

1234
 points = 0  
rekord = 0  
if rekord < points:  
    rekord += 1  

При каждом вызове ты просто ставишь points и record в 0 (Условие, естественно, не выполнится). Откуда там взяться каким-либо другим значениям?

Если не обнулять, скорее всего будет нормально работать, хотя я не вчитывался в остальной код