[PYTHON] I'm a beginner, can I borrow my wisdom?

I'm new to programming. It's a very personal matter, but I can't do it, so could you lend me some wisdom? After running the following program and playing the game, the screen shown below will be displayed. It says WPM was 0.0, which should be 30,40 for me. Could you please tell me what is wrong and where to fix it?

filename.rb


from tkinter import *
from tkinter.ttk import *
import random

window = Tk()
main_frame = Frame(window)
canvas = Canvas(window, width="400", height="300", background="#BDFFBA")
main_frame.grid(row=0, column=0)
time = 30
number_of_entries = 0
misstakes = 0
instruction = ""
words = open('words.txt')
word_list = words.read().split(", ")


def new_word():
   global word_list
   global number_of_entries
   global misstakes

   if time > 0:
       user_entry.focus_set()

       user_entry.delete(0, END)

       random.shuffle(word_list)

       typing_word.config(text=word_list[0])

       number_of_entries_label.configure(text="number of entries: " + str(number_of_entries))

       if user_entry.get().lower() == word_list[0]:
         number_of_entries += 1
       elif user_entry.get().lower() != word_list[0]:
         misstakes += 1




def menu():
 title_1.grid(row=0, column=0, pady=50)
 play_button.grid(row=1, column=0, padx=100)
 instruction_button.grid(row=2, column=0, pady=20)
 exit_button.grid(row=3, column=0, pady=20)
 time_label.grid_forget()
 user_entry.grid_forget()
 typing_word.grid_forget()

def start_game(event):
    if time == 30:
       time_change()
    new_word()

def time_change():
    global time
    if time > 0:
        time -= 1
        time_label.config(text="Time: " + str(time))
    time_label.after(1000, time_change)
    if time == 0:
        window.unbind("<Return>")
        result_screen()


def play_pressed():
   time_label.grid(row=0, column=0, pady=10)
   user_entry.grid(row=2, column=0, pady=20)
   typing_word.grid(row=1, column=0, pady=10)
   window.bind( "<Return>", start_game)
   title_1.grid_forget()
   play_button.grid_forget()
   instruction_button.grid_forget()
   exit_button.grid_forget()


def instruction_pressed():
    sub_win = Toplevel()
    label1 = Label(sub_win, text=instruction)
    label1.pack()
    label2 = Label(sub_win, text=instruction)
    label2.pack()

def restart_game_button_pressed():
    global number_of_entries
    global time
    number_of_entries = 0
    time = 30
    play_pressed()

def result_screen():
    restart_game_button.grid(pady=100, padx=100)
    result_label.grid()
    user_entry.grid_forget()
    time_label.grid_forget()
    typing_word.grid_forget()

characters_entries = number_of_entries * 8
gross_wpm = characters_entries / 0.5
gross_misstakes = misstakes / 0.5
WPM = gross_wpm - gross_misstakes
result = "Your WPM was {}".format(WPM)
result_label = Label(window, text=result)
result_label.configure(font=("Helvetica", 40))

s = Style()
s.configure("TButton", font=('Helvetica', 30))

title_1 = Label(main_frame, text="Prototype")
title_1.configure(font=("Helvetica", 44))

time_label = Label(window, text="Time: " + str(time))
time_label.configure(font=("Helvetica", 40))

number_of_entries_label = Label(window, text="WPM: " + str(number_of_entries))

user_entry = Entry(window, font=("Comic Sans MS", 20))

typing_word = Label(window, font=("Comic Sans MS", 15))
typing_word.configure(font=("Helvetica", 44))

play_button = Button(main_frame, text="Play", command=play_pressed, style="TButton")
instruction_button = Button(main_frame, text="How to play", command=instruction_pressed)
exit_button = Button(main_frame, text="EXIT", command=window.destroy)
restart_game_button = Button(main_frame, text="Play again", command=restart_game_button_pressed())

main_frame.grid(row=0, column=0)

menu()
window.mainloop()

キャプチャ.PNG

Recommended Posts

I'm a beginner, can I borrow my wisdom?
Beginner: I made a launcher using dictionary
[I'm an IT beginner] I tried my best to implement Linux on Windows
As a beginner, I searched the / proc directory