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.
Po naciśnięciu Enter gra się rozpoczyna i za każdą poprawną odpowiedź program zwiększa wynik o jeden.
Po upływie czasu program wyświetla końcowy wynik wraz z oknem dialogowym umożliwiającym wyjście z gry.
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