Lesere som deg er med på å støtte MUO. Når du foretar et kjøp ved å bruke lenker på nettstedet vårt, kan vi tjene en tilknyttet provisjon. Les mer.

Den gjennomsnittlige skrivehastigheten er rundt 40 ord per minutt. Hvis du ønsker å være produktiv i arbeidet ditt, bør du ha som mål å skrive minst 65 til 70 ord per minutt. Å øke skrivehastigheten din vil forbedre effektiviteten din, noe som vil øke oppgaver som dataregistrering, copywriting, transkripsjon og administrative roller.

For å teste skriveferdighetene dine kan du bygge en enkel skrivetestapplikasjon ved å bruke Python. Ved å bruke dette kan du få presise resultater og utvikle en vanedannende vane for å forbedre deg over tid.

Tkinter- og Random-modulene

For å utvikle skrivetestspillet bruker du tkinter modul og tilfeldig modul. Tkinter lar deg lage skrivebordsapplikasjoner. Den tilbyr en rekke widgets som knapper, etiketter, tekstbokser og layoutadministratorer som gjør det enkelt å utvikle applikasjoner uten for mye innsats.

Bortsett fra disse kommer den med nyttige biblioteker, lerretsobjekter og HTML/XML/PDF-parsere. For å installere Tkinter i systemet ditt, åpne terminalen og kjør:

pip installere tkinter

Tilfeldig-modulen har en samling funksjoner for å generere tilfeldige tall. Du kan bruke disse rutinene til å produsere stokkede sekvenser, spillbevegelser og pseudo-tilfeldige heltall. Noen av dens vanlige bruksområder inkluderer simulering av terningkast, stokking av lister, en tilfeldig passordgenerator, og i spill som hånd cricket og tallgjetting.

Hvordan bygge skrivetest-app ved hjelp av Python

Følg disse trinnene for å bygge en skrivetestapplikasjon ved å bruke Pythons Tkinter og Random-modul.

Du kan finne kildekoden til Typing Test App Using Python og ordtekstfilen i denne GitHub-depot.

Begynn med å importere Tkinter og Random-modulen. Initialiser Tkinter-forekomsten og vis rotvinduet. Angi dimensjonene i piksler, tittelen og bakgrunnsfargen til vinduet.

fra tkinter import *
import tilfeldig
fra tkinter import meldingsboks

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

Last ned listen over ord fra GitHub-depotet og plasser den i samme mappe som Python-skriptet for enkel referanse. Les innholdet i tekstfilen og bruk split()-funksjonen til å lagre hvert ord i en liste. Initialiser poengsum, tapte og tell1 variabler til null og tidsvariabelen til 60.

fil1 = åpen('words.txt', 'r')
ord = fil1.les().split()
score = savnet = telle1 = 0
tid = 60

Definer en funksjon kalt gitt tid() som refererer til de globale variablene nevnt ovenfor. Hvis den gjenværende tiden er større enn null, reduserer du den med én og viser den på etiketten for timertelling (oppgitt i den senere halvdelen av koden). Bruke etter() funksjon for å kalle tilbake gitttid()-funksjonen etter en forsinkelse på 1000 millisekunder (ett sekund).

Hvis tiden er over, endre innholdet i startetiketten til Game Over og vis poengsummen på spillinstruksjonsetiketten samtidig. Send de tilsvarende variablene til format() funksjon for å vise treff, miss og totalpoengsum.

defgitt tid():
global tid, poengsum, bommet

hvis tid > 0:
tid -= 1
timercount.configure (tekst=tid)
timertelling.etter(1000, gitt tid)
ellers:
startlabel.configure (text='Spillet er over!')
gameinstruction.configure (tekst='Treff = {} | Miss = {} | Total poengsum = {}'.format (score, missed, score - missed))

Send tittelen og meldingen til askokcancel() funksjon. Hvis svaret mottatt i dialogboksen vurderes til å være sant, stopper du programmet ved å bruke exit() funksjon.

 rr = messagebox.askokcancel('Spillet er over!', 'Trykk OK for å avslutte')

hvis rr == ekte:
exit()

Definer en funksjon kalt spill() som tar hendelse som et input-argument. Referer til de globale variablene. Hvis tidsvariabelen er lik 60, utfør funksjonen giventime() for å starte nedtellingen. Mens spillet pågår, endre startetiketten til Fortsett og spillinstruksjonsetiketten for å trykke enter etter å ha skrevet inn ordet ved hjelp av configure()-funksjonen.

defspill(begivenhet):
global score, bommet

hvis tid == 60:
gitt tid()

startlabel.configure (text='Fortsette..')
gameinstruction.configure (tekst='Trykk Enter etter å ha skrevet ordet')

Hent ordet skrevet i wordentry ved å bruke få() funksjon og sjekk om det tilsvarer ordet som vises på skjermen. Hvis ja, øk poengsummen og reflekter den på partituretiketten. Ellers øker du den savnede variabelen med én.

Omorganiser elementene i ordlisten og vis det første elementet. Bruke slett() funksjon fra null til siste indeks på wordentry-widgeten for å fjerne innholdet.

hvis wordentry.get() == labelforward['tekst']:
score += 1
scorelabelcount.configure (tekst=poengsum)
ellers:
savnet += 1

tilfeldig.tilfeldig rekkefølge(ord)
labelforward.configure (tekst=ord[0])
blitry.slett(0, SLUTT)

Angi startlabel, labelforward, scorelabel, scorelabelcount, labelfortimer, timercount og gameinstruction ved hjelp av Label-widgeten. Etikettwidgeten tar inn det overordnede vinduet du vil plassere den i, teksten den skal vise, skrifttype, størrelse, farge og stil sammen med bakgrunnsfargen til etiketten.

Send X- og Y-koordinatene til plass() metode for å organisere etikettene på en bestemt posisjon.

startlabel = Etikett (hovedskjerm, tekst='Typespill',font=('arial',30,"kursiv fet"),bg='svart',fg='hvit')
startlabel.place (x=375, y=50)

labelforward = Etikett (hovedskjerm, tekst=' ',font=('arial',45,"kursiv fet"),fg='grønn')
labelforward.place (x=350, y=240)

scorelabel = Etikett (hovedskjerm, tekst='Din poengsum:',font=('arial',25,"kursiv fet"),fg='rødbrun')
scorelabel.place (x=110, y=100)

scorelabelcount = Etikett (Mainscreen, text=score, font=('arial',25,"kursiv fet"),fg="lilla")
scorelabelcount.place (x=250, y=180)

labelfortimer = Etikett (hovedskjerm, tekst='Tid igjen:',font=('arial',25,"kursiv fet"),fg='rødbrun')
labelfortimer.place (x=700, y=100)

timercount = Etikett (Mainscreen, text=time, font=('arial',25,"kursiv fet"),fg="lilla")
timercount.place (x=700, y=180)

spillinstruksjon = Etikett (hovedskjerm, tekst='Trykk Enter etter å ha skrevet ordet',font=('arial',25,"kursiv fet"),fg='grå')
gameinstruction.place (x=250, y=500)

Definer en oppføringswidget som godtar ordet du skriver. Angi det overordnede vinduet du vil plassere det i, skrifttype, størrelse, stil sammen med kantstørrelsen og justeringsegenskapen. Bruk sted()-metoden for å plassere oppføringswidgeten og fokus_sett() metode for å aktivere inntastingsboksen for inndata.

wordentry = Entry (Hovedskjerm, font=('arial',25,"kursiv fet"), bd=10, begrunn ='senter')
wordentry.place (x=350, y=330)
blitry.focus_set()

Et viktig trinn er å binde Enter-tasten med en hendelse i Tkinter-vinduet. Å gjøre det sikrer at når spilleren trykker Tast inn en bestemt funksjon vil utføres. For å oppnå dette, passerer du string og game() fungerer som parametere for binde() funksjon. De mainloop() funksjonen forteller Python å kjøre Tkinter-hendelsesløkken og lytte etter hendelser (for eksempel knappetrykk) til du lukker vinduet.

Mainscreen.bind('', spill)
mainloop()

Sett sammen all koden og kjør koden for å spille skrivetestspillet med fingertuppene.

Utdata fra Python Typing Test App

Når du kjører programmet ovenfor, dukker det opp et vindu som er 1000 piksler bredt og 600 piksler høyt, med en vannbakgrunnsfarge, en resultattavle, nedtellingstidtaker og en instruksjon for å starte spillet.

Når du trykker Enter, begynner spillet og for hvert riktig svar øker programmet poengsummen én.

Når tiden er over, viser programmet sluttresultatet sammen med en dialogboks for å avslutte spillet.

Tkinter GUI-ideer for nybegynnere

Tkinter er et veldig kraftig verktøy som du kan bruke til å bygge enkle til fullt funksjonelle applikasjoner som er attraktive og robuste. Selv en nybegynner kan bruke Tkinter. Noen få eksempelprosjekter du kan bygge er et spørrespill, en adressebok, en oppgaveliste eller en bildeviser.

Hvis du vil bevege deg utover Tkinter, inkluderer noen av de populære alternativene Qt-designer, Kivy, Toga og BeeWare. Alle disse rammeverkene er allsidige og støtter utvikling på tvers av plattformer, slik at du kan kjøre applikasjonene dine problemfritt i alle miljøer.