Sprawdź swoją szybkość i dokładność pisania za pomocą Pythona

Sprawdź swoją szybkość i dokładność pisania za pomocą Pythona

Średnia prędkość pisania wynosi około 40 słów na minutę. Jeśli chcesz być produktywny w swojej pracy, powinieneś dążyć do wpisania co najmniej 65 do 70 słów na minutę. Zwiększenie szybkości pisania poprawi wydajność, co przyspieszy zadania, takie jak wprowadzanie danych, pisanie tekstów, transkrypcja i role administracyjne.

Aby sprawdzić swoje umiejętności pisania na klawiaturze, możesz zbudować prostą aplikację do testowania pisania przy użyciu języka Python. Korzystając z tego, możesz uzyskać dokładne wyniki i rozwinąć uzależniający nawyk, który z czasem będzie się poprawiał.

Moduły Tkinter i Random

Aby opracować grę testową pisania, użyjesz modułu tkinter i modułu losowego . Tkinter umożliwia tworzenie aplikacji desktopowych. Oferuje różnorodne widżety, takie jak przyciski, etykiety, pola tekstowe i menedżery układu, które ułatwiają tworzenie aplikacji bez zbytniego wysiłku.

Oprócz tego zawiera pomocne biblioteki, obiekty płótna i parsery HTML/XML/PDF. Aby zainstalować Tkintera w swoim systemie, otwórz terminal i wykonaj:

pip install tkinter

Moduł Random posiada zbiór funkcji do generowania liczb losowych. Możesz użyć tych procedur do tworzenia przetasowanych sekwencji, ruchów w grze i pseudolosowych liczb całkowitych. Niektóre z jego typowych zastosowań obejmują symulację rzutów kostką, tasowanie list, generator losowych haseł oraz gry takie jak krykiet ręczny i zgadywanie liczb.

Jak zbudować aplikację do testowania pisania przy użyciu Pythona

Wykonaj poniższe kroki, aby utworzyć aplikację do testowania pisania przy użyciu modułów Tkinter i Random w języku Python.

Rozpocznij od zaimportowania modułu Tkinter i Random. Zainicjuj instancję Tkinter i wyświetl okno główne. Ustaw wymiary w pikselach, tytuł i kolor tła okna.

from tkinter import *
import random
from tkinter import messagebox

Mainscreen = Tk()
Mainscreen.geometry('1000x600')
Mainscreen.title('MakeUseOf Typing Game')
Mainscreen.config(bg="aqua")

Pobierz listę słów z repozytorium GitHub i umieść ją w tym samym folderze co skrypt Pythona, aby ułatwić korzystanie z niej. Przeczytaj zawartość pliku tekstowego i użyj funkcji split() do zapisania każdego słowa na liście. Zainicjuj zmienne wyniku, pominięcia i liczby 1 na zero, a zmienną czasu na 60.

file1 = open('words.txt', 'r')
words = file1.read().split()
score = missed = count1 = 0
time = 60

Zdefiniuj funkcję o nazwie givetime() , która odwołuje się do wspomnianych powyżej zmiennych globalnych. Jeśli pozostały czas jest większy od zera, zmniejsz go o jeden i wyświetl na etykiecie licznika czasu (zadeklarowanej w dalszej części kodu). Użyj funkcji after() w celu wywołania funkcji givetime() z opóźnieniem równym 1000 milisekund (jedna sekunda).

Jeśli czas się skończy, zmień treść etykiety startowej na Koniec gry i jednocześnie wyświetl wynik na etykiecie instrukcji gry. Przekaż odpowiednie zmienne do funkcji format() , aby wyświetlić trafienie, chybienie i łączny wynik.

def giventime():
    global time, score, missed

    if time > 0:
        time -= 1
        timercount.configure(text=time)
        timercount.after(1000, giventime)
    else:
        startlabel.configure(text='Game Over!')
        gameinstruction.configure(text='Hit = {} | Miss = {} | Total Score = {}'.format(score, missed, score - missed))

Przekaż tytuł i wiadomość do funkcji askokcancel() . Jeśli odpowiedź otrzymana w oknie dialogowym ma wartość true, zatrzymaj aplikację za pomocą funkcji exit() .

        rr = messagebox.askokcancel('Game Over!', 'Press Ok to Exit')

        if rr == True:
            exit()

Zdefiniuj funkcję o nazwie game() , która przyjmuje zdarzenie jako argument wejściowy. Odwołaj się do zmiennych globalnych. Jeśli zmienna czasu jest równa 60, wykonaj funkcję Giventime(), aby rozpocząć odliczanie. Gdy gra jest w toku, zmień etykietę początkową na Kontynuuj i etykietę instrukcji gry, aby nacisnąć klawisz Enter po wpisaniu słowa za pomocą funkcji configure().

def game(event):
    global score, missed

    if time == 60:
        giventime()


    startlabel.configure(text='Continue..')
    gameinstruction.configure(text='Hit Enter After Typing The Word')

Pobierz słowo wpisane w wordentry za pomocą funkcji get() i sprawdź, czy jest równe słowu wyświetlanemu na ekranie. Jeśli tak, zwiększ wynik i odzwierciedl go na etykiecie wyniku. W przeciwnym razie zwiększ pominiętą zmienną o jeden.

Zmień kolejność elementów na liście słów i wyświetl pierwszy element. Użyj funkcji delete() od zera do ostatniego indeksu na widżecie Wordentry, aby wyczyścić zawartość.

    if wordentry.get() == labelforward['text']:
        score += 1
        scorelabelcount.configure(text=score)
    else:
        missed += 1

    random.shuffle(words)
    labelforward.configure(text=words[0])
    wordentry.delete(0, END)

Ustaw etykietę początkową, etykietę do przodu, etykietę wyniku, liczbę etykiet wyników, etykietę dla timera, licznik czasu i instrukcję gry za pomocą widżetu Etykieta. Widżet etykiety pobiera okno nadrzędne, w którym chcesz go umieścić, tekst, który ma wyświetlać, typ czcionki, rozmiar, kolor i styl wraz z kolorem tła etykiety.

Przekaż współrzędne X i Y do metody place() , aby uporządkować etykiety w określonej pozycji.

startlabel = Label(Mainscreen,text='Typing Game',font=('arial',30,'italic bold'),bg='black',fg='white')
startlabel.place(x=375, y=50)

labelforward = Label(Mainscreen,text=' ',font=('arial',45,'italic bold'),fg='green')
labelforward.place(x=350, y=240)

scorelabel = Label(Mainscreen,text='Your Score:',font=('arial',25,'italic bold'),fg='maroon')
scorelabel.place(x=110, y=100)

scorelabelcount = Label(Mainscreen,text=score,font=('arial',25,'italic bold'),fg='purple')
scorelabelcount.place(x=250, y=180)

labelfortimer = Label(Mainscreen,text='Time Left:',font=('arial',25,'italic bold'),fg='maroon')
labelfortimer.place(x=700, y=100)

timercount = Label(Mainscreen,text=time,font=('arial',25,'italic bold'),fg='purple')
timercount.place(x=700, y=180)

gameinstruction = Label(Mainscreen,text='Hit Enter After Typing The Word',font=('arial',25,'italic bold'),fg='grey')
gameinstruction.place(x=250, y=500)

Zdefiniuj widżet wpisu, który akceptuje wpisywane słowo. Ustaw okno nadrzędne, w którym chcesz je umieścić, typ czcionki, rozmiar, styl wraz z rozmiarem obramowania i właściwość justify. Użyj metody place() do ustawienia widżetu wprowadzania i metody focus_set() do aktywowania pola wprowadzania danych.

wordentry = Entry(Mainscreen, font=('arial',25,'italic bold'), bd=10, justify='center')
wordentry.place(x=350, y=330)
wordentry.focus_set()

Ważnym krokiem jest powiązanie klawisza Enter ze zdarzeniem w oknie Tkintera. Dzięki temu, gdy gracz naciśnie Enter, zostanie wykonana określona funkcja. Aby to osiągnąć, przekazujesz łańcuch <Return> i funkcję game() jako parametry funkcji bind() . Funkcja mainloop () mówi Pythonowi, aby uruchomił pętlę zdarzeń Tkinter i nasłuchiwał zdarzeń (takich jak naciśnięcia przycisków), dopóki nie zamkniesz okna.

Mainscreen.bind('<Return>', game)
mainloop()

Połącz cały kod i uruchom kod, aby zagrać w grę testową na wyciągnięcie ręki.

Dane wyjściowe aplikacji do testowania pisania w języku Python

Po uruchomieniu powyższego programu pojawia się okno o szerokości 1000 pikseli i wysokości 600 pikseli, z turkusowym kolorem tła, tablicą wyników, minutnikiem i instrukcją rozpoczęcia gry.

Ekran początkowy gry w pisanie w języku Python

Po naciśnięciu Enter gra się rozpoczyna i za każdą poprawną odpowiedź program zwiększa wynik o jeden.

Ekran wpisywania gry Python w toku

Po upływie czasu program wyświetla końcowy wynik wraz z oknem dialogowym umożliwiającym wyjście z gry.

Pisanie gry Python Koniec gry na ekranie

Pomysły Tkinter GUI dla początkujących

Tkinter to bardzo potężne narzędzie, którego można używać do tworzenia prostych lub w pełni funkcjonalnych aplikacji, które są atrakcyjne i solidne. Nawet nowicjusz może korzystać z Tkintera. Kilka przykładowych projektów, które możesz stworzyć, to quiz, książka adresowa, lista rzeczy do zrobienia lub przeglądarka obrazów.

Jeśli chcesz wyjść poza Tkintera, kilka popularnych alternatyw to Qt designer, Kivy, Toga i BeeWare. Wszystkie te frameworki są wszechstronne i obsługują programowanie na wielu platformach, dzięki czemu możesz bezproblemowo uruchamiać swoje aplikacje w dowolnym środowisku.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *