Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Keskimääräinen kirjoitusnopeus on noin 40 sanaa minuutissa. Jos haluat olla tuottava työssäsi, sinun tulee pyrkiä kirjoittamaan vähintään 65–70 sanaa minuutissa. Kirjoitusnopeuden lisääminen parantaa tehokkuuttasi, mikä tehostaa tehtäviä, kuten tietojen syöttämistä, tekstin kirjoittamista, transkriptiota ja järjestelmänvalvojarooleja.

Voit testata kirjoitustaitosi rakentamalla yksinkertaisen kirjoitustestisovelluksen Pythonilla. Tämän avulla voit saada tarkkoja tuloksia ja kehittää riippuvuutta aiheuttavan tavan, joka paranee ajan myötä.

Tkinter- ja Random-moduulit

Kirjoitustestipelin kehittämiseen käytät tkinter moduuli ja satunnainen moduuli. Tkinterin avulla voit luoda työpöytäsovelluksia. Se tarjoaa erilaisia ​​widgetejä, kuten painikkeita, tarroja, tekstiruutuja ja asettelunhallintaohjelmia, joiden avulla sovellusten kehittäminen on helppoa ilman liiallista vaivaa.

instagram viewer

Näiden lisäksi siinä on hyödyllisiä kirjastoja, kanvas-objekteja ja HTML/XML/PDF-jäsentimiä. Asenna Tkinter järjestelmääsi avaamalla pääte ja suorittamalla:

pip Asentaa tkinter

Random-moduulissa on kokoelma toimintoja satunnaislukujen luomiseen. Näiden rutiinien avulla voit tuottaa sekoitettuja sarjoja, peliliikkeitä ja näennäissatunnaisia ​​kokonaislukuja. Joitakin sen yleisiä käyttötarkoituksia ovat nopanheittojen simulointi, sekoituslistat jne satunnainen salasanageneraattori, ja sellaisissa peleissä kuin käsi kriketti ja numeroiden arvailu.

Kuinka rakentaa kirjoitustestisovellus Pythonilla

Seuraa näitä ohjeita rakentaaksesi kirjoitustestisovelluksen Pythonin Tkinter and Random -moduulilla.

Löydät Pythonia käyttävän Typing Test Appin lähdekoodin ja sanan tekstitiedoston tästä GitHub-arkisto.

Aloita tuomalla Tkinter ja Random-moduuli. Alusta Tkinter-instanssi ja näytä juuriikkuna. Aseta mitat pikseleinä, otsikko ja ikkunan taustaväri.

alkaen tkinter tuonti *
tuonti satunnainen
alkaen tkinter tuonti viestilaatikko

Päänäyttö = Tk()
Mainscreen.geometry("1000x600")
Mainscreen.title("MakeUseOf Typing Game")
Mainscreen.config(bg="vesi")

Lataa sanaluettelo GitHub-arkistosta ja sijoita se samaan kansioon Python-komentosarjan kanssa viittauksen helpottamiseksi. Lue tekstitiedoston sisältö ja tallenna jokainen sana luetteloon split()-funktiolla. Alusta pisteet, jääneet ja count1-muuttujat nollaan ja aikamuuttuja 60:ksi.

tiedosto1 = open("words.txt", 'r')
sanat = tiedosto1.read().split()
pisteet = ohitetut = count1 = 0
aika = 60

Määritä funktio nimeltä annettu aika() joka viittaa edellä mainittuihin globaaleihin muuttujiin. Jos jäljellä oleva aika on suurempi kuin nolla, vähennä sitä yhdellä ja näytä se ajastintarrassa (ilmoitetaan koodin jälkimmäisellä puoliskolla). Käytä jälkeen() funktio kutsua takaisin giventime()-funktion 1 000 millisekunnin (yhden sekunnin) viiveen jälkeen.

Jos aika on ohi, muuta aloitustunnisteen sisältöksi Game Over ja näytä samalla tulos peliohjetarrassa. Välitä vastaavat muuttujat muoto() -toiminto näyttää osuman, pisteen ja kokonaispistemäärän.

defannettu aika():
maailmanlaajuisesti aika, pisteet, jäänyt väliin

jos aika > 0:
aika - = 1
timercount.configure (teksti=aika)
ajastinlaskenta.jälkeen(1000, annettu aika)
muu:
startlabel.configure (text='Peli ohi!')
gameinstruction.configure (text='Osuma = {} | Neiti = {} | Kokonaispisteet = {}'.format (pisteet, jääneet, pisteet - jääneet))

Välitä otsikko ja viesti askokcancel() toiminto. Jos valintaikkunassa saatu vastaus on tosi, pysäytä sovellus käyttämällä exit() toiminto.

 rr = viestilaatikko.askokcancel('Peli ohi!', "Poistu painamalla OK")

jos rr == Totta:
poistu()

Määritä funktio nimeltä peli() joka ottaa tapahtuman syöteargumenttina. Viittaa globaaleihin muuttujiin. Jos aikamuuttuja on 60, aloita lähtölaskenta suorittamalla giventime()-funktio. Kun peli on käynnissä, vaihda aloitustunniste muotoon Continue ja peliohjeen otsikko ja paina Enter, kun olet kirjoittanut sanan configure()-funktiolla.

defpeli(tapahtuma):
maailmanlaajuisesti pisteet, jäi väliin

jos aika == 60:
annettu aika()

startlabel.configure (text='Jatkaa..')
gameinstruction.configure (text="Paina Enter sanan kirjoittamisen jälkeen")

Hae sanakirjaan kirjoitettu sana käyttämällä saada() -toiminto ja tarkista, vastaako näytöllä näkyvää sanaa. Jos kyllä, lisää pisteitä ja heijasta se pistemäärään. Muussa tapauksessa lisää puuttuvaa muuttujaa yhdellä.

Järjestä sanaluettelon kohteet uudelleen ja näytä ensimmäinen elementti. Käytä poistaa() toiminto nollasta viimeiseen hakemistoon sanasyöte-widgetissä tyhjentääksesi sisällön.

jos wordentry.get() == labelforward['teksti']:
pisteet += 1
scorelabelcount.configure (teksti=pisteet)
muu:
jäi väliin += 1

satunnainen.sekoita(sanat)
labelforward.configure (teksti=sanat[0])
sanamuoto.poistaa(0, LOPPU)

Aseta aloitustunniste, labelforward, scorelabel, scorelabelcount, labelfortimer, timercount ja peliohjeet Label-widgetin avulla. Tarra-widget ottaa pääikkunaan, johon haluat sijoittaa sen, tekstin, jonka sen pitäisi näyttää, fontin tyypin, koon, värin ja tyylin sekä tarran taustavärin.

Välitä X- ja Y-koordinaatit paikka() tapa järjestää tarrat tiettyyn paikkaan.

startlabel = Label (Päänäyttö, text="Kirjoituspeli",font=("arial",30,'kursiivi lihavoitu'),bg='musta',fg='valkoinen')
startlabel.place (x=375, y=50)

labelforward = Label (Päänäyttö, text=' ',font=("arial",45,'kursiivi lihavoitu'),fg='vihreä')
labelforward.place (x=350, y=240)

scorelabel = Label (Päänäyttö, text='Pisteesi:',font=("arial",25,'kursiivi lihavoitu'),fg='kastanjanruskea')
scorelabel.place (x=110, y=100)

scorelabelcount = Tunniste (päänäyttö, text=score, font=("arial",25,'kursiivi lihavoitu'),fg='violetti')
scorelabelcount.place (x=250, y=180)

labelfortimer = Label (Päänäyttö, text='Aikaa jäljellä:',font=("arial",25,'kursiivi lihavoitu'),fg='kastanjanruskea')
labelfortimer.place (x=700, y=100)

timercount = Label (Päänäyttö, text=time, font=("arial",25,'kursiivi lihavoitu'),fg='violetti')
timercount.place (x=700, y=180)

gameinstruction = Label (Päänäyttö, teksti="Paina Enter sanan kirjoittamisen jälkeen",font=("arial",25,'kursiivi lihavoitu'),fg='harmaa')
peliohje.paikka (x=250, y=500)

Määritä syöttöwidget, joka hyväksyy kirjoittamasi sanan. Aseta pääikkuna, johon haluat sijoittaa sen, fontin tyyppi, koko, tyyli sekä reunuksen koko ja tasausominaisuus. Käytä place()-menetelmää sijoittaaksesi syöttöwidgetin ja focus_set() tapa aktivoida syöttöruutu.

wordentry = Syöte (päänäyttö, font=("arial",25,'kursiivi lihavoitu'), bd=10, perustele ='keskusta')
sanakirjoitus.paikka (x=350, y=330)
sanamuoto.focus_set()

Tärkeä vaihe on sitoa Enter-näppäin tapahtumaan Tkinter-ikkunassa. Näin varmistetaan, että kun pelaaja painaa Tulla sisään tietty toiminto suoritettaisiin. Tämän saavuttamiseksi läpäiset string ja game() toimivat parametreina sitoa() toiminto. The mainloop() toiminto käskee Pythonia suorittamaan Tkinterin tapahtumasilmukan ja kuuntelemaan tapahtumia (kuten painikkeen painalluksia), kunnes suljet ikkunan.

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

Yhdistä kaikki koodi ja suorita koodi pelataksesi kirjoitustestipeliä sormiesi ulottuvilla.

Python-kirjoitustestisovelluksen tulos

Kun yllä oleva ohjelma suoritetaan, näkyviin tulee 1 000 pikseliä leveä ja 600 pikseliä korkea ikkuna, jossa on vesivärinen taustaväri, tulostaulu, ajastin ja ohje pelin aloittamiseen.

Kun painat Enter, peli alkaa ja jokaisesta oikeasta vastauksesta ohjelma lisää pistemäärää yhdellä.

Kun aika on ohi, ohjelma näyttää lopullisen tuloksen sekä valintaikkunan pelistä poistumiseksi.

Tkinter GUI-ideoita aloittelijoille

Tkinter on erittäin tehokas työkalu, jonka avulla voit rakentaa yksinkertaisista täysin toimiviin sovelluksiin, jotka ovat houkuttelevia ja kestäviä. Jopa aloittelija voi käyttää Tkinteriä. Muutamia esimerkkiprojekteja, joita voit rakentaa, ovat tietokilpailu, osoitekirja, tehtävälista tai kuvien katseluohjelma.

Jos haluat siirtyä Tkinterin ulkopuolelle, muutamia suosittuja vaihtoehtoja ovat Qt designer, Kivy, Toga ja BeeWare. Kaikki nämä puitteet ovat monipuolisia ja tukevat useiden alustojen kehitystä, joten voit käyttää sovelluksiasi vaivattomasti missä tahansa ympäristössä.