Metti alla prova la tua velocità e precisione di battitura usando Python

Metti alla prova la tua velocità e precisione di battitura usando Python

La velocità media di battitura è di circa 40 parole al minuto. Se vuoi essere produttivo nel tuo lavoro, dovresti mirare a digitare almeno da 65 a 70 parole al minuto. Aumentare la velocità di digitazione migliorerà la tua efficienza, il che aumenterà attività come l’immissione di dati, il copywriting, la trascrizione e i ruoli amministrativi.

Per testare le tue capacità di digitazione, puoi creare una semplice applicazione di test di digitazione utilizzando Python. Usando questo, puoi ottenere risultati precisi e sviluppare un’abitudine che crea dipendenza per migliorare nel tempo.

I moduli Tkinter e Random

Per sviluppare il Typing Test Game, utilizzerai il modulo tkinter e il modulo random . Tkinter ti consente di creare applicazioni desktop. Offre una varietà di widget come pulsanti, etichette, caselle di testo e gestori di layout che semplificano lo sviluppo di applicazioni senza troppi sforzi.

Oltre a questi, viene fornito con utili librerie, oggetti canvas e parser HTML/XML/PDF. Per installare Tkinter nel tuo sistema, apri il terminale ed esegui:

pip install tkinter

Il modulo Random ha una raccolta di funzioni per la generazione di numeri casuali. È possibile utilizzare queste routine per produrre sequenze mescolate, movimenti di gioco e numeri interi pseudo-casuali. Alcuni dei suoi usi comuni includono la simulazione di tiri di dadi, liste di mescolamento, un generatore di password casuali e in giochi come il cricket a mano e l’ipotesi di numeri.

Come creare un’app di test di digitazione utilizzando Python

Segui questi passaggi per creare un’applicazione di test di digitazione usando il modulo Tkinter e Random di Python.

Inizia importando Tkinter e il modulo Random. Inizializza l’istanza Tkinter e visualizza la finestra principale. Imposta le dimensioni in pixel, il titolo e il colore di sfondo della finestra.

from tkinter import *
import random
from tkinter import messagebox

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

Scarica l’elenco di parole dal repository GitHub e inseriscilo nella stessa cartella dello script Python per un facile riferimento. Leggi il contenuto del file di testo e usa la funzione split() per memorizzare ogni parola in un elenco. Inizializza le variabili score, miss e count1 a zero e la variabile time a 60.

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

Definire una funzione denominata giventime() che fa riferimento alle variabili globali menzionate sopra. Se il tempo rimanente è maggiore di zero, decrementalo di uno e visualizzalo sull’etichetta timercount (dichiarata nella seconda metà del codice). Utilizzare la funzione after() per richiamare la funzione giventime() dopo un ritardo di 1.000 millisecondi (un secondo).

Se il tempo è scaduto, cambia il contenuto dell’etichetta iniziale in Game Over e contemporaneamente visualizza il punteggio sull’etichetta delle istruzioni di gioco. Passa le variabili corrispondenti alla funzione format() per visualizzare Hit, Miss e Total Score.

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

Passa il titolo e il messaggio alla funzione askokcancel() . Se la risposta ricevuta nella finestra di dialogo restituisce true, arrestare l’applicazione utilizzando la funzione exit() .

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

        if rr == True:
            exit()

Definisci una funzione chiamata game() che accetta l’evento come argomento di input. Fare riferimento alle variabili globali. Se la variabile time è uguale a 60, esegui la funzione giventime() per iniziare il conto alla rovescia. Mentre il gioco è in corso, cambia la startlabel in Continue e l’etichetta gameinstruction in premi invio dopo aver digitato la parola usando la funzione configure().

def game(event):
    global score, missed

    if time == 60:
        giventime()


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

Recupera la parola digitata in wordentry utilizzando la funzione get() e controlla se è uguale alla parola visualizzata sullo schermo. Se sì, incrementa il punteggio e riportalo sull’etichetta del punteggio. In caso contrario, incrementa di uno la variabile mancante.

Riordina gli elementi nell’elenco delle parole e visualizza il primo elemento. Utilizzare la funzione delete() dallo zero all’ultimo indice sul widget wordentry per cancellare il contenuto.

    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)

Impostare startlabel, labelforward, scorelabel, scorelabelcount, labelfortimer, timercount e gameinstruction utilizzando il widget Etichetta. Il widget dell’etichetta prende nella finestra principale in cui vuoi posizionarlo, il testo che dovrebbe visualizzare, il tipo di carattere, la dimensione, il colore e lo stile insieme al colore di sfondo dell’etichetta.

Passa le coordinate X e Y al metodo place() per organizzare le etichette in una posizione specifica.

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)

Definire un widget di immissione che accetti la parola digitata. Imposta la finestra principale in cui desideri inserirla, il tipo di carattere, la dimensione, lo stile insieme alla dimensione del bordo e la proprietà justify. Utilizzare il metodo place() per posizionare il widget di immissione e il metodo focus_set() per attivare la casella di immissione per l’input.

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

Un passaggio importante consiste nell’associare il tasto Invio a un evento nella finestra di Tkinter. In questo modo si garantisce che quando il giocatore preme Invio venga eseguita una particolare funzione. Per ottenere ciò, si passa la stringa <Return> e la funzione game() come parametri alla funzione bind() . La funzione mainloop() dice a Python di eseguire il ciclo di eventi Tkinter e ascoltare gli eventi (come la pressione di un pulsante) finché non chiudi la finestra.

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

Metti insieme tutto il codice ed esegui il codice per giocare al gioco di test di battitura a portata di mano.

Output dell’app di test di digitazione Python

Eseguendo il programma sopra, appare una finestra larga 1.000 pixel e alta 600 pixel, con un colore di sfondo color acqua, un tabellone segnapunti, un conto alla rovescia e un’istruzione per iniziare il gioco.

Digitando il gioco Python inizia la schermata

Premendo Invio inizia il gioco e ad ogni risposta corretta il programma incrementa il punteggio di uno.

Schermata di digitazione del gioco Python in corso

Quando il tempo è scaduto, il programma visualizza il punteggio finale insieme a una finestra di dialogo per uscire dal gioco.

Digitando il gioco Python Game Over Screen

Idee GUI Tkinter per principianti

Tkinter è uno strumento molto potente che puoi utilizzare per creare applicazioni da semplici a completamente funzionali che siano attraenti e robuste. Anche un principiante può usare Tkinter. Alcuni progetti di esempio che puoi creare sono un gioco a quiz, una rubrica, un elenco di cose da fare o un visualizzatore di immagini.

Se vuoi andare oltre Tkinter, alcune delle alternative popolari includono Qt designer, Kivy, Toga e BeeWare. Tutti questi framework sono versatili e supportano lo sviluppo multipiattaforma, quindi puoi eseguire le tue applicazioni senza problemi in qualsiasi ambiente.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *