Testez votre vitesse de frappe et votre précision avec Python

Testez votre vitesse de frappe et votre précision avec Python

La vitesse de frappe moyenne est d’environ 40 mots par minute. Si vous voulez être productif dans votre travail, vous devez vous efforcer de taper au moins 65 à 70 mots par minute. L’augmentation de votre vitesse de frappe améliorera votre efficacité, ce qui stimulera les tâches telles que la saisie de données, la rédaction, la transcription et les rôles administratifs.

Pour tester vos compétences en dactylographie, vous pouvez créer une application de test de dactylographie simple à l’aide de Python. En utilisant cela, vous pouvez obtenir des résultats précis et développer une habitude addictive à améliorer au fil du temps.

Les modules Tkinter et Random

Pour développer le Typing Test Game, vous utiliserez le module tkinter et le module random . Tkinter vous permet de créer des applications de bureau. Il offre une variété de widgets tels que des boutons, des étiquettes, des zones de texte et des gestionnaires de mise en page qui facilitent le développement d’applications sans trop d’effort.

En dehors de ceux-ci, il est livré avec des bibliothèques utiles, des objets de canevas et des analyseurs HTML/XML/PDF. Pour installer Tkinter dans votre système, ouvrez le terminal et exécutez :

pip install tkinter

Le module Random a une collection de fonctions pour générer des nombres aléatoires. Vous pouvez utiliser ces routines pour produire des séquences mélangées, des mouvements de jeu et des entiers pseudo-aléatoires. Certaines de ses utilisations courantes incluent la simulation de lancers de dés, des listes de mélange, un générateur de mots de passe aléatoires et des jeux comme le cricket à main et la devinette de nombres.

Comment créer une application de test de dactylographie à l’aide de Python

Suivez ces étapes pour créer une application de test de frappe à l’aide des modules Tkinter et Random de Python.

Commencez par importer le Tkinter et le module Random. Initialisez l’instance de Tkinter et affichez la fenêtre racine. Définissez les dimensions en pixels, le titre et la couleur de fond de la fenêtre.

from tkinter import *
import random
from tkinter import messagebox

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

Téléchargez la liste de mots à partir du référentiel GitHub et placez-la dans le même dossier que le script Python pour un référencement facile. Lisez le contenu du fichier texte et utilisez la fonction split() pour stocker chaque mot dans une liste. Initialisez les variables score, miss et count1 à zéro et la variable time à 60.

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

Définissez une fonction nommée giventime() qui fait référence aux variables globales mentionnées ci-dessus. Si le temps restant est supérieur à zéro, décrémentez-le de un et affichez-le sur l’étiquette timercount (déclarée dans la seconde moitié du code). Utilisez la fonction after() pour rappeler la fonction giventime() après un délai de 1 000 millisecondes (une seconde).

Si le temps est écoulé, changez le contenu du startlabel en Game Over et affichez simultanément le score sur le gameinstruction label. Passez les variables correspondantes à la fonction format() pour afficher le succès, l’échec et le score total.

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

Passez le titre et le message à la fonction askokcancel() . Si la réponse reçue dans la boîte de dialogue est vraie, arrêtez l’application à l’aide de la fonction exit() .

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

        if rr == True:
            exit()

Définissez une fonction nommée game() qui prend event comme argument d’entrée. Référencez les variables globales. Si la variable time est égale à 60, exécutez la fonction giventime() pour commencer le compte à rebours. Au fur et à mesure que le jeu est en cours, changez l’étiquette de démarrage en Continuer et l’étiquette d’instruction de jeu en appuyant sur Entrée après avoir tapé le mot à l’aide de la fonction configure().

def game(event):
    global score, missed

    if time == 60:
        giventime()


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

Récupérez le mot saisi dans wordentry à l’aide de la fonction get() et vérifiez s’il est égal au mot affiché à l’écran. Si oui, incrémentez le score et indiquez-le sur l’étiquette du score. Sinon, incrémentez la variable manquée de un.

Réorganisez les éléments de la liste de mots et affichez le premier élément. Utilisez la fonction delete() du zéro au dernier index sur le widget wordentry pour effacer le contenu.

    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)

Définissez startlabel, labelforward, scorelabel, scorelabelcount, labelfortimer, timercount et gameinstruction à l’aide du widget Label. Le widget d’étiquette prend dans la fenêtre parente dans laquelle vous souhaitez le placer, le texte qu’il doit afficher, le type de police, la taille, la couleur et le style ainsi que la couleur d’arrière-plan de l’étiquette.

Transmettez les coordonnées X et Y à la méthode place() pour organiser les étiquettes à une position spécifique.

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)

Définissez un widget d’entrée qui accepte le mot que vous saisissez. Définissez la fenêtre parente dans laquelle vous souhaitez la placer, le type de police, la taille, le style ainsi que la taille de la bordure et la propriété de justification. Utilisez la méthode place() pour positionner le widget d’entrée et la méthode focus_set() pour activer la zone d’entrée pour la saisie.

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

Une étape importante consiste à lier la touche Entrée à un événement dans la fenêtre Tkinter. Cela garantit que lorsque le joueur appuie sur Entrée, une fonction particulière s’exécute. Pour ce faire, vous passez la chaîne <Return> et la fonction game() en tant que paramètres à la fonction bind() . La fonction mainloop() indique à Python d’exécuter la boucle d’événements Tkinter et d’écouter les événements (tels que les pressions sur les boutons) jusqu’à ce que vous fermiez la fenêtre.

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

Rassemblez tout le code et exécutez-le pour jouer au jeu de test de dactylographie à portée de main.

Sortie de l’application Python Typing Test

Lors de l’exécution du programme ci-dessus, une fenêtre apparaît de 1 000 pixels de large et 600 pixels de haut, avec une couleur de fond aqua, un tableau de bord, un compte à rebours et une instruction pour commencer le jeu.

Taper l'écran de début du jeu Python

En appuyant sur Entrée, le jeu commence et à chaque bonne réponse, le programme incrémente le score de un.

Écran de saisie du jeu Python en cours

Lorsque le temps est écoulé, le programme affiche le score final ainsi qu’une boîte de dialogue pour quitter le jeu.

Jeu de saisie Python Game Over Screen

Idées d’interface graphique Tkinter pour les débutants

Tkinter est un outil très puissant que vous pouvez utiliser pour créer des applications simples à entièrement fonctionnelles, attrayantes et robustes. Même un débutant peut utiliser Tkinter. Quelques exemples de projets que vous pouvez créer sont un jeu-questionnaire, un carnet d’adresses, une liste de tâches ou une visionneuse d’images.

Si vous souhaitez aller au-delà de Tkinter, quelques-unes des alternatives populaires incluent le concepteur Qt, Kivy, Toga et BeeWare. Tous ces frameworks sont polyvalents et prennent en charge le développement multiplateforme, vous pouvez donc exécuter vos applications sans tracas sur n’importe quel environnement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *