Testen Sie Ihre Tippgeschwindigkeit und Genauigkeit mit Python

Testen Sie Ihre Tippgeschwindigkeit und Genauigkeit mit Python

Die durchschnittliche Schreibgeschwindigkeit liegt bei etwa 40 Wörtern pro Minute. Wenn Sie bei Ihrer Arbeit produktiv sein möchten, sollten Sie darauf abzielen, mindestens 65 bis 70 Wörter pro Minute zu tippen. Die Erhöhung Ihrer Tippgeschwindigkeit wird Ihre Effizienz verbessern, was Aufgaben wie Dateneingabe, Verfassen von Texten, Transkription und administrative Aufgaben ankurbeln wird.

Um Ihre Tippfähigkeiten zu testen, können Sie mit Python eine einfache Tipptestanwendung erstellen. Auf diese Weise können Sie präzise Ergebnisse erzielen und eine süchtig machende Angewohnheit entwickeln, die sich im Laufe der Zeit verbessert.

Die Module Tkinter und Random

Um das Typing Test Game zu entwickeln, verwenden Sie das tkinter- Modul und das random- Modul. Mit Tkinter können Sie Desktop-Anwendungen erstellen. Es bietet eine Vielzahl von Widgets wie Schaltflächen, Beschriftungen, Textfelder und Layout-Manager, die es einfach machen, Anwendungen ohne großen Aufwand zu entwickeln.

Abgesehen davon enthält es hilfreiche Bibliotheken, Canvas-Objekte und HTML/XML/PDF-Parser. Um Tkinter in Ihrem System zu installieren, öffnen Sie das Terminal und führen Sie Folgendes aus:

pip install tkinter

Das Random-Modul hat eine Sammlung von Funktionen zum Generieren von Zufallszahlen. Sie können diese Routinen verwenden, um gemischte Sequenzen, Spielbewegungen und pseudozufällige ganze Zahlen zu erzeugen. Einige seiner üblichen Anwendungen umfassen die Simulation von Würfelwürfen, das Mischen von Listen, einen zufälligen Passwortgenerator und Spiele wie Handcricket und Zahlenraten.

So erstellen Sie eine Tipptest-App mit Python

Befolgen Sie diese Schritte, um eine Tipptestanwendung mit dem Tkinter- und Random-Modul von Python zu erstellen.

Beginnen Sie mit dem Importieren von Tkinter und dem Random-Modul. Initialisieren Sie die Tkinter-Instanz und zeigen Sie das Root-Fenster an. Legen Sie die Abmessungen in Pixel, den Titel und die Hintergrundfarbe des Fensters fest.

from tkinter import *
import random
from tkinter import messagebox

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

Laden Sie die Wortliste aus dem GitHub-Repository herunter und platzieren Sie sie zur einfachen Referenzierung im selben Ordner wie das Python-Skript. Lesen Sie den Inhalt der Textdatei und verwenden Sie die Funktion split(), um jedes Wort in einer Liste zu speichern. Initialisieren Sie die Variablen „score“, „missed“ und „count1“ auf null und die Variable „time“ auf 60.

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

Definieren Sie eine Funktion namens giventime() , die auf die oben erwähnten globalen Variablen verweist. Wenn die verbleibende Zeit größer als Null ist, dekrementieren Sie sie um eins und zeigen Sie sie auf dem Timercount-Label an (deklariert in der späteren Hälfte des Codes). Verwenden Sie die After()- Funktion, um die Giventime()-Funktion nach einer Verzögerung von 1.000 Millisekunden (einer Sekunde) zurückzurufen.

Wenn die Zeit abgelaufen ist, ändere den Inhalt des Startlabels auf Game Over und zeige gleichzeitig den Punktestand auf dem Spielanleitungslabel an. Übergeben Sie die entsprechenden Variablen an die format() -Funktion, um Hit, Miss und die Gesamtpunktzahl anzuzeigen.

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))

Übergeben Sie den Titel und die Nachricht an die Funktion askokcancel() . Wenn die im Dialogfeld empfangene Antwort wahr ist, stoppen Sie die Anwendung mit der Funktion exit() .

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

        if rr == True:
            exit()

Definieren Sie eine Funktion namens game() , die event als Eingabeargument verwendet. Verweisen Sie auf die globalen Variablen. Wenn die Zeitvariable gleich 60 ist, führen Sie die Funktion Giventime() aus, um den Countdown zu beginnen. Während das Spiel läuft, ändern Sie das Startlabel in Continue und das Gameinstruction-Label in Enter, nachdem Sie das Wort mit der configure()-Funktion eingegeben haben.

def game(event):
    global score, missed

    if time == 60:
        giventime()


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

Rufen Sie das in wordentry eingegebene Wort mit der Funktion get() ab und prüfen Sie, ob es mit dem auf dem Bildschirm angezeigten Wort übereinstimmt. Wenn ja, erhöhen Sie die Punktzahl und geben Sie sie auf dem Bewertungsetikett an. Erhöhen Sie andernfalls die fehlende Variable um eins.

Ordnen Sie die Elemente in der Wortliste neu und zeigen Sie das erste Element an. Verwenden Sie die Funktion delete() vom Nullpunkt bis zum letzten Index des Widgets wordentry, um den Inhalt zu löschen.

    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)

Legen Sie Startlabel, Labelforward, Scorelabel, Scorelabelcount, Labelfortimer, Timercount und gameinstruction mit dem Label-Widget fest. Das Label-Widget übernimmt das übergeordnete Fenster, in dem Sie es platzieren möchten, den Text, den es anzeigen soll, Schriftart, -größe, -farbe und -stil sowie die Hintergrundfarbe des Labels.

Übergeben Sie die X- und Y-Koordinaten an die Methode place() , um die Beschriftungen an einer bestimmten Position anzuordnen.

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)

Definieren Sie ein Eingabe-Widget, das das von Ihnen eingegebene Wort akzeptiert. Legen Sie das übergeordnete Fenster fest, in dem Sie es platzieren möchten, die Schriftart, die Größe, den Stil sowie die Rahmengröße und die Justify-Eigenschaft. Verwenden Sie die Methode place(), um das Eingabe-Widget zu positionieren, und die Methode focus_set() , um das Eingabefeld für die Eingabe zu aktivieren.

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

Ein wichtiger Schritt besteht darin, die Eingabetaste mit einem Ereignis im Tkinter-Fenster zu verknüpfen. Dadurch wird sichergestellt, dass eine bestimmte Funktion ausgeführt wird, wenn der Spieler die Eingabetaste drückt. Dazu übergeben Sie den <Return>-String und die game()-Funktion als Parameter an die bind()- Funktion. Die Funktion mainloop() weist Python an, die Tkinter-Ereignisschleife auszuführen und auf Ereignisse (z. B. Tastendrücke) zu warten, bis Sie das Fenster schließen.

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

Setzen Sie den gesamten Code zusammen und führen Sie den Code aus, um das Tipptestspiel auf Knopfdruck zu spielen.

Ausgabe der Python Typing Test App

Beim Ausführen des obigen Programms erscheint ein Fenster, das 1.000 Pixel breit und 600 Pixel hoch ist, mit einer aquafarbenen Hintergrundfarbe, einer Anzeigetafel, einem Countdown-Timer und einer Anweisung, das Spiel zu beginnen.

Eingabe des Spiel-Python-Startbildschirms

Beim Drücken der Eingabetaste beginnt das Spiel und bei jeder richtigen Antwort erhöht das Programm die Punktzahl um eins.

Bildschirm „Spiel Python läuft“ wird eingegeben

Wenn die Zeit abgelaufen ist, zeigt das Programm das Endergebnis zusammen mit einem Dialogfeld zum Verlassen des Spiels an.

Eingabespiel Python Game Over Screen

Tkinter GUI-Ideen für Anfänger

Tkinter ist ein sehr leistungsfähiges Tool, mit dem Sie einfache bis voll funktionsfähige Anwendungen erstellen können, die attraktiv und robust sind. Sogar ein Neuling kann Tkinter verwenden. Einige Beispielprojekte, die Sie erstellen können, sind ein Quizspiel, ein Adressbuch, eine Aufgabenliste oder ein Bildbetrachter.

Wenn Sie über Tkinter hinausgehen möchten, sind einige der beliebten Alternativen Qt Designer, Kivy, Toga und BeeWare. Alle diese Frameworks sind vielseitig und unterstützen die plattformübergreifende Entwicklung, sodass Sie Ihre Anwendungen problemlos in jeder Umgebung ausführen können.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert