Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

De gemiddelde typsnelheid ligt rond de 40 woorden per minuut. Als u productief wilt zijn in uw werk, moet u ernaar streven om minimaal 65 tot 70 woorden per minuut te typen. Door uw typsnelheid te verhogen, verbetert u uw efficiëntie, waardoor taken als gegevensinvoer, copywriting, transcriptie en administratieve taken een boost krijgen.

Om uw typevaardigheid te testen, kunt u een eenvoudige typetesttoepassing bouwen met behulp van Python. Hiermee kunt u nauwkeurige resultaten krijgen en een verslavende gewoonte ontwikkelen om na verloop van tijd te verbeteren.

De Tkinter- en willekeurige modules

Om de Typing Test Game te ontwikkelen, gebruik je de tkinter moduul en de willekeurig moduul. Met Tkinter kunt u desktop-applicaties maken. Het biedt een verscheidenheid aan widgets zoals knoppen, labels, tekstvakken en lay-outmanagers die het gemakkelijk maken om zonder al te veel moeite applicaties te ontwikkelen.

instagram viewer

Afgezien hiervan wordt het geleverd met handige bibliotheken, canvasobjecten en HTML/XML/PDF-parsers. Om Tkinter in uw systeem te installeren, opent u de terminal en voert u uit:

Pip installeren tkinter

De module Willekeurig heeft een verzameling functies voor het genereren van willekeurige getallen. U kunt deze routines gebruiken om geschudde reeksen, spelbewegingen en pseudo-willekeurige gehele getallen te produceren. Enkele van de meest voorkomende toepassingen zijn de simulatie van dobbelstenen, het door elkaar schudden van lijsten, een willekeurige wachtwoordgenerator, en in games zoals handkrekel en getallen raden.

Hoe typtest-app te bouwen met behulp van Python

Volg deze stappen om een ​​typetesttoepassing te bouwen met behulp van de Tkinter- en Random-module van Python.

Hierin vindt u de broncode van Typing Test App Using Python en het woordtekstbestand GitHub-opslagplaats.

Begin met het importeren van de Tkinter- en de Random-module. Initialiseer de Tkinter-instantie en geef het hoofdvenster weer. Stel de afmetingen in pixels, de titel en de achtergrondkleur van het venster in.

van tkinter importeren *
importeren willekeurig
van tkinter importeren berichten box

Hoofdscherm = Tk()
Hoofdscherm.geometry('1000x600')
Hoofdscherm.titel('MakeUseOf-typespel')
Hoofdscherm.config(bg="water")

Download de lijst met woorden uit de GitHub-repository en plaats deze in dezelfde map als het Python-script om er gemakkelijk naar te kunnen verwijzen. Lees de inhoud van het tekstbestand en gebruik de functie split() om elk woord in een lijst op te slaan. Initialiseer de variabelen score, gemist en count1 op nul en de variabele tijd op 60.

bestand1 = openen('woorden.txt', 'R')
woorden = bestand1.lezen().split()
score = gemist = tel1 = 0
tijd = 60

Definieer een functie met de naam gegeven tijd() dat verwijst naar de hierboven genoemde globale variabelen. Als de resterende tijd groter is dan nul, verlaagt u deze met één en geeft u deze weer op het timercount-label (gedeclareerd in de tweede helft van de code). Gebruik de na() functie om de functie Giventime() terug te roepen na een vertraging van 1000 milliseconden (één seconde).

Als de tijd voorbij is, verandert u de inhoud van het startlabel in Game Over en geeft u tegelijkertijd de score weer op het spelinstructielabel. Geef de bijbehorende variabelen door aan de formaat() functie om de Hit, Miss en de Total Score weer te geven.

defgegeven tijd():
globaal tijd, score, gemist

als tijd > 0:
tijd -= 1
timercount.configure (tekst=tijd)
timertelling.na(1000, gegeven tijd)
anders:
startlabel.configure (tekst='Spel is over!')
spelinstructie.configure (tekst='Treffer = {} | Miss = {} | Totaalscore = {}'.format (score, gemist, score - gemist))

Geef de titel en het bericht door aan de vraag annuleren() functie. Als het antwoord dat in het dialoogvenster wordt ontvangen, waar is, stopt u de toepassing met behulp van de Uitgang() functie.

 rr = berichtenbox.askokcancel('Spel is over!', 'Druk op OK om af te sluiten')

als rr == WAAR:
Uitgang()

Definieer een functie met de naam spel() dat neemt gebeurtenis als invoerargument. Verwijs naar de globale variabelen. Als de time-variabele gelijk is aan 60, voert u de functie Giventime() uit om het aftellen te starten. Terwijl het spel bezig is, wijzigt u het startlabel in Doorgaan en het spelinstructielabel om op enter te drukken nadat u het woord hebt getypt met behulp van de configure()-functie.

defspel(evenement):
globaal scoren, gemist

als tijd == 60:
gegeven tijd()

startlabel.configure (tekst='Doorgaan..')
spelinstructie.configure (tekst='Druk op Enter na het typen van het woord')

Haal het ingetypte woord op met behulp van de krijgen() functie en controleer of dit gelijk is aan het woord dat op het scherm wordt weergegeven. Zo ja, verhoog de score en vermeld deze op het scorelabel. Verhoog anders de gemiste variabele met één.

Herschik de items in de woordenlijst en geef het eerste element weer. Gebruik de verwijderen() functie van de nul tot de laatste index op de wordtry widget om de inhoud te wissen.

als wordentry.get() == labelforward['tekst']:
scoor += 1
scorelabelcount.configure (tekst=score)
anders:
gemist += 1

willekeurig.schudden(woorden)
labelforward.configure (tekst=woorden[0])
proberen.verwijderen(0, EINDE)

Stel het startlabel, het labelvooruit, het scorelabel, het aantal scorelabels, het label voor de timer, het aantal timers en de spelinstructie in met behulp van de Label-widget. De labelwidget neemt het bovenliggende venster op waarin u het wilt plaatsen, de tekst die moet worden weergegeven, het lettertype, de grootte, de kleur en de stijl samen met de achtergrondkleur van het label.

Geef de X- en Y-coördinaten door aan de plaats() methode om de labels op een specifieke positie te ordenen.

startlabel = Label (Hoofdscherm, tekst='Typespel',lettertype=('arieel',30,'cursief vet'),bg='zwart',bijv='wit')
startlabel.plaats (x=375, y=50)

labelforward = Label (Hoofdscherm, tekst=' ',lettertype=('arieel',45,'cursief vet'),bijv='groente')
labelforward.plaats (x=350, y=240)

scorelabel = Label (Hoofdscherm, tekst='Jouw score:',lettertype=('arieel',25,'cursief vet'),bijv='kastanjebruin')
scorelabel.plaats (x=110, y=100)

scorelabelcount = Label (Hoofdscherm, tekst=score, lettertype=('arieel',25,'cursief vet'),bijv='paars')
scorelabelcount.plaats (x=250, y=180)

labelfortimer = Label (Hoofdscherm, tekst='Tijd over:',lettertype=('arieel',25,'cursief vet'),bijv='kastanjebruin')
labelvoortimer.plaats (x=700, y=100)

timercount = Label (Hoofdscherm, tekst=tijd, font=('arieel',25,'cursief vet'),bijv='paars')
timercount.place (x=700, y=180)

spelinstructie = Label (Hoofdscherm, tekst='Druk op Enter na het typen van het woord',lettertype=('arieel',25,'cursief vet'),bijv='grijs')
spelinstructie.plaats (x=250, y=500)

Definieer een invoerwidget die het woord accepteert dat u typt. Stel het bovenliggende venster in waarin u het wilt plaatsen, het lettertype, de grootte, de stijl, de randgrootte en de eigenschap Rechtvaardigen. Gebruik de methode place() om de invoerwidget en de focus_set() methode om het invoervak ​​voor invoer te activeren.

wordentry = Invoer (Hoofdscherm, font=('arieel',25,'cursief vet'), bd=10, rechtvaardigen='centrum')
wordentry.place (x=350, y=330)
proberen.focus_set()

Een belangrijke stap is om de Enter-toets te binden aan een gebeurtenis in het Tkinter-venster. Dit zorgt ervoor dat wanneer de speler drukt Binnenkomen een bepaalde functie zou uitvoeren. Om dit te bereiken, passeer je de string en de game() functie als parameters voor het binden() functie. De Hoofdlus() functie vertelt Python om de Tkinter-gebeurtenislus uit te voeren en te luisteren naar gebeurtenissen (zoals het indrukken van knoppen) totdat u het venster sluit.

Hoofdscherm.bind('', spel)
Hoofdlus()

Zet alle code bij elkaar en voer de code uit om het typetestspel binnen handbereik te spelen.

Uitvoer van de Python Typing Test-app

Bij het uitvoeren van het bovenstaande programma verschijnt er een venster van 1000 pixels breed en 600 pixels hoog, met een aqua-achtergrondkleur, een scorebord, een afteltimer en een instructie om het spel te beginnen.

Door op Enter te drukken, begint het spel en bij elk correct antwoord verhoogt het programma de score met één.

Als de tijd voorbij is, geeft het programma de eindscore weer, samen met een dialoogvenster om het spel te verlaten.

Tkinter GUI-ideeën voor beginners

Tkinter is een zeer krachtige tool die u kunt gebruiken om eenvoudige tot volledig functionele applicaties te bouwen die aantrekkelijk en robuust zijn. Zelfs een nieuweling kan Tkinter gebruiken. Een paar voorbeeldprojecten die u kunt bouwen, zijn een quizspel, een adresboek, een takenlijst of een afbeeldingsviewer.

Als u verder wilt gaan dan Tkinter, zijn enkele van de populaire alternatieven Qt designer, Kivy, Toga en BeeWare. Al deze frameworks zijn veelzijdig en ondersteunen platformonafhankelijke ontwikkeling, zodat u uw applicaties probleemloos in elke omgeving kunt uitvoeren.