Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Keskmine tippimiskiirus on umbes 40 sõna minutis. Kui soovite oma töös produktiivne olla, peaksite püüdma tippida vähemalt 65–70 sõna minutis. Tippimiskiiruse suurendamine suurendab teie tõhusust, mis suurendab ülesandeid, nagu andmete sisestamine, tekstikirjutamine, transkriptsioon ja administraatorirollid.

Oma tippimisoskuste testimiseks saate Pythoni abil luua lihtsa tippimistestirakenduse. Seda kasutades saate täpseid tulemusi ja arendada sõltuvust tekitava harjumuse, mis aja jooksul paraneb.

Tkinteri ja juhuslikud moodulid

Tippimiskatse mängu arendamiseks kasutate tkinter moodul ja juhuslik moodul. Tkinter võimaldab teil luua töölauarakendusi. See pakub mitmesuguseid vidinaid, nagu nupud, sildid, tekstikastid ja paigutushaldurid, mis muudavad rakenduste arendamise lihtsaks ilma liigse pingutuseta.

Peale nende on kaasas kasulikud teegid, lõuendiobjektid ja HTML/XML/PDF parserid. Tkinteri installimiseks oma süsteemi avage terminal ja käivitage:

pip installida tkinter

Juhuslikul moodulil on hulk funktsioone juhuslike arvude genereerimiseks. Nende rutiinide abil saate luua segatud jadasid, mänguliigutusi ja pseudojuhuslikke täisarvusid. Mõned selle levinumad kasutusalad hõlmavad täringuviske simuleerimist, loendite segamist jne juhusliku parooli generaator, ja sellistes mängudes nagu käsi kriket ja arvu arvamine.

Kuidas Pythoni abil tippimistesti rakendust luua

Pythoni mooduli Tkinter ja Random abil tippimistestirakenduse loomiseks järgige neid samme.

Siit leiate Pythonit kasutava Typing Test App lähtekoodi ja sõna tekstifaili GitHubi hoidla.

Alustage Tkinteri ja Random mooduli importimisega. Initsialiseerige Tkinteri eksemplar ja kuvage juuraken. Määrake mõõtmed pikslites, pealkiri ja akna taustavärv.

alates tkinter importida *
importida juhuslik
alates tkinter importida sõnumikast

Põhiekraan = Tk()
Mainscreen.geometry("1000x600")
Mainscreen.title("MakeUseOf tippimismäng")
Mainscreen.config(bg="vesi")

Laadige sõnade loend alla GitHubi hoidlast ja asetage see hõlpsaks viitamiseks Pythoni skriptiga samasse kausta. Lugege tekstifaili sisu ja kasutage iga sõna loendisse salvestamiseks funktsiooni split (). Initsialiseerige skoor, vastamata ja count1 muutujad nulliks ja ajamuutuja 60-ni.

fail1 = avatud ('words.txt', 'r')
sõnad = fail1.read().split()
skoor = vastamata = loendus1 = 0
aeg = 60

Määratlege funktsioon nimega antud aeg () mis viitab ülalmainitud globaalsetele muutujatele. Kui järelejäänud aeg on suurem kui null, vähendage seda ühe võrra ja kuvage see taimeriloendi sildil (deklareeritud koodi hilisemas pooles). Kasuta pärast () funktsiooni giventime() funktsiooni tagasikutsumiseks pärast 1000 millisekundilist (ühe sekundi) viivitust.

Kui aeg on möödas, muutke stardisildi sisuks Game Over ja kuvage samaaegselt skoor mängujuhiste sildil. Edastage vastavad muutujad formaat () funktsioon tabamuse, vahelejätmise ja koguskoori kuvamiseks.

defantud aeg():
globaalne aeg, skoor, vahele jäänud

kui aeg > 0:
aeg -= 1
timercount.configure (text=time)
timercount.pärast(1000, antud aeg)
muidu:
startlabel.configure (text='Mäng läbi!')
gameinstruction.configure (text='Tabamus = {} | Preili = {} | Koguskoor = {}'.formaat (skoor, vastamata, skoor – vahele jäänud))

Edastage pealkiri ja sõnum askokcancel() funktsiooni. Kui dialoogiboksis saadud vastuse väärtus on tõene, peatage rakendus, kasutades nuppu exit () funktsiooni.

 rr = messagebox.askokcancel('Mäng läbi!', "Väljumiseks vajutage OK")

kui rr == Tõsi:
väljuda()

Määratlege funktsioon nimega mäng () mis võtab sisendargumendina sündmust. Viidake globaalsetele muutujatele. Kui ajamuutuja on 60, käivitage loenduse alustamiseks funktsioon giventime(). Kui mäng on pooleli, muutke stardisildiks Continue ja mängujuhiste silt, et vajutada sisestusklahvi pärast sõna sisestamist funktsiooni configure() abil.

defmängu(sündmus):
globaalne skoor, jäi vahele

kui aeg == 60:
antud aeg ()

startlabel.configure (text='Jätka..')
gameinstruction.configure (text=Pärast sõna sisestamist vajutage sisestusklahvi)

Otsige üles sõnastikku sisestatud sõna, kasutades saada () funktsiooni ja kontrollige, kas see võrdub ekraanil kuvatava sõnaga. Kui jah, suurendage skoori ja kajastage seda hindesildil. Vastasel juhul suurendage kaotatud muutujat ühe võrra.

Muutke sõnade loendis olevate üksuste järjestust ja kuvage esimene element. Kasuta kustuta() funktsioon nullist viimase indeksini sõnasisestuse vidina sisu kustutamiseks.

kui wordentry.get() == labelforward['tekst']:
skoor += 1
scorelabelcount.configure (text=score)
muidu:
jäi vahele += 1

juhuslik.segistage(sõnad)
labelforward.configure (text=words[0])
sõnastik.kustuta(0, LÕPP)

Saate vidina Label abil määrata stardisildi, sildi edasisuunamise, tulemusmärgise, tulemusmärgise arvu, sildifortimeri, taimeri loenduse ja mängujuhised. Sildi vidin võtab ülemaknasse, kuhu soovite selle asetada, teksti, mida see peaks kuvama, fondi tüübi, suuruse, värvi ja stiili ning sildi taustavärvi.

Edastage X- ja Y-koordinaadid koht () meetod siltide korraldamiseks konkreetses kohas.

startlabel = Silt (Peaekraan, text='kirjutusmäng',font=("arial",30,"kaldkiri paksus kirjas"),bg='must',fg='valge')
startlabel.place (x=375, y=50)

labelforward = Silt (Peaekraan, text=' ',font=("arial",45,"kaldkiri paksus kirjas"),fg='roheline')
labelforward.place (x=350, y=240)

scorelabel = Silt (peaekraan, tekst="Teie skoor:",font=("arial",25,"kaldkiri paksus kirjas"),fg='kastanpruun')
scorelabel.place (x=110, y=100)

scorelabelcount = Silt (Peaekraan, text=score, font=("arial",25,"kaldkiri paksus kirjas"),fg='lilla')
scorelabelcount.place (x=250, y=180)

labelfortimer = Silt (Peaekraan, text='Aega jäänud:',font=("arial",25,"kaldkiri paksus kirjas"),fg='kastanpruun')
labelfortimer.place (x=700, y=100)

timercount = Silt (Peaekraan, text=time, font=("arial",25,"kaldkiri paksus kirjas"),fg='lilla')
timercount.place (x=700, y=180)

gameinstruction = Silt (Peaekraan, tekst=Pärast sõna sisestamist vajutage sisestusklahvi,font=("arial",25,"kaldkiri paksus kirjas"),fg='hall')
gameinstruction.place (x=250, y=500)

Määrake sisestuse vidin, mis aktsepteerib teie sisestatud sõna. Määrake ülemaken, kuhu soovite selle paigutada, fondi tüüp, suurus, stiil koos äärise suuruse ja joondusomadusega. Kasutage meetodit place(), et paigutada sisestusvidin ja focus_set() meetod sisestuskasti aktiveerimiseks.

wordentry = Kirje (Peaekraan, font=("arial",25,"kaldkiri paksus kirjas"), bd=10, põhjenda ='Keskus')
wordentry.place (x=350, y=330)
sõnastik.focus_set()

Oluline samm on sisestusklahvi sidumine sündmusega Tkinteri aknas. See tagab, et kui mängija vajutab Sisenema konkreetne funktsioon täidaks. Selle saavutamiseks läbite string ja game() funktsiooni parameetritena bind() funktsiooni. The mainloop() funktsioon käsib Pythonil käivitada Tkinteri sündmuste tsükli ja kuulata sündmusi (nt nupuvajutused), kuni akna sulgete.

Mainscreen.bind('', mäng)
mainloop()

Pange kogu kood kokku ja käivitage kood, et mängida tippimistestimängu teie käeulatuses.

Pythoni tippimistesti rakenduse väljund

Ülaltoodud programmi käivitamisel ilmub aken, mis on 1000 pikslit lai ja 600 pikslit kõrge ning millel on vesivärvi taustavärv, tulemustabel, taimer ja juhis mängu alustamiseks.

Kui vajutate Enter, mäng algab ja iga õige vastuse korral suurendab programm skoori ühe võrra.

Kui aeg on möödas, kuvab programm lõpliku skoori ja dialoogiboksi mängust väljumiseks.

Tkinteri GUI ideed algajatele

Tkinter on väga võimas tööriist, mida saate kasutada lihtsate kuni täielikult funktsionaalsete rakenduste loomiseks, mis on atraktiivsed ja töökindlad. Isegi algaja saab Tkinterit kasutada. Mõned näidisprojektid, mida saate luua, on viktoriin, aadressiraamat, ülesannete loend või pildivaatur.

Kui soovite Tkinterist kaugemale liikuda, on mõned populaarsed alternatiivid Qt designer, Kivy, Toga ja BeeWare. Kõik need raamistikud on mitmekülgsed ja toetavad platvormidevahelist arendust, nii et saate oma rakendusi probleemideta käitada mis tahes keskkonnas.