Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

A velocidade média de digitação é de cerca de 40 palavras por minuto. Se você deseja ser produtivo em seu trabalho, deve digitar pelo menos 65 a 70 palavras por minuto. Aumentar sua velocidade de digitação melhorará sua eficiência, o que aumentará tarefas como entrada de dados, direitos autorais, transcrição e funções administrativas.

Para testar suas habilidades de digitação, você pode criar um aplicativo de teste de digitação simples usando Python. Usando isso, você pode obter resultados precisos e desenvolver um hábito viciante para melhorar com o tempo.

Os Módulos Tkinter e Random

Para desenvolver o Typing Test Game, você usará o tkinter módulo e o aleatório módulo. Tkinter permite que você crie aplicativos de desktop. Ele oferece uma variedade de widgets como botões, rótulos, caixas de texto e gerenciadores de layout que facilitam o desenvolvimento de aplicativos sem muito esforço.

instagram viewer

Além disso, ele vem com bibliotecas úteis, objetos de tela e analisadores de HTML/XML/PDF. Para instalar o Tkinter em seu sistema, abra o terminal e execute:

pip instalar tkinter

O módulo Random possui uma coleção de funções para gerar números aleatórios. Você pode usar essas rotinas para produzir sequências embaralhadas, movimentos de jogo e números inteiros pseudo-aleatórios. Alguns de seus usos comuns incluem a simulação de jogadas de dados, listas de embaralhamento, um gerador de senha aleatória, e em jogos como críquete de mão e adivinhação de números.

Como construir um aplicativo de teste de digitação usando Python

Siga estas etapas para criar um aplicativo de teste de digitação usando o módulo Tkinter e Random do Python.

Você pode encontrar o código-fonte do Typing Test App Using Python e o arquivo de texto da palavra neste Repositório GitHub.

Comece importando o Tkinter e o módulo Random. Inicialize a instância do Tkinter e exiba a janela raiz. Defina as dimensões em pixels, o título e a cor de fundo da janela.

de tkinter importar *
importar aleatório
de tkinter importar caixa de mensagem

Tela principal = Tk()
Tela principal.geometria('1000x600')
Mainscreen.title('Jogo de digitação MakeUseOf')
Mainscreen.config(bg="água")

Baixe a lista de palavras do repositório GitHub e coloque-a na mesma pasta que o script Python para facilitar a referência. Leia o conteúdo do arquivo de texto e use a função split() para armazenar cada palavra em uma lista. Inicialize as variáveis ​​score, miss e count1 como zero e a variável time como 60.

arquivo1 = abrir('palavras.txt', 'r')
palavras = arquivo1.read().split()
pontuação = errou = contagem1 = 0
tempo = 60

Defina uma função chamada Tempo dado() que referencia as variáveis ​​globais mencionadas acima. Se o tempo restante for maior que zero, diminua-o em um e exiba-o no rótulo timercount (declarado na última metade do código). Use o depois() função para chamar de volta a função Giventime() após um atraso de 1.000 milissegundos (um segundo).

Se o tempo acabar, altere o conteúdo do rótulo de início para Game Over e exiba simultaneamente a pontuação no rótulo de instrução do jogo. Passe as variáveis ​​correspondentes para o formatar() função para exibir o Hit, Miss e a pontuação total.

defTempo dado():
global tempo, pontuação, perdido

se tempo > 0:
tempo -= 1
timercount.configure (texto=hora)
contador de tempo.depois(1000, Tempo dado)
outro:
startlabel.configure (texto='Game Over!')
gameinstruction.configure (texto='Acerto = {} | Senhorita = {} | Pontuação total = {}'.format (pontuação, erro, pontuação - falha))

Passe o título e a mensagem para o askokcancel() função. Se a resposta recebida na caixa de diálogo for verdadeira, interrompa o aplicativo usando o saída() função.

 rr = messagebox.askokcancel('Game Over!', 'Pressione OK para sair')

se rr == Verdadeiro:
saída()

Defina uma função chamada jogo() que recebe o evento como um argumento de entrada. Faça referência às variáveis ​​globais. Se a variável time for igual a 60, execute a função Giventime() para iniciar a contagem regressiva. À medida que o jogo está em andamento, altere o rótulo de início para Continuar e o rótulo de instrução do jogo para pressionar Enter após digitar a palavra usando a função configure().

defjogo(evento):
global pontuação, errou

se tempo == 60:
Tempo dado()

startlabel.configure (texto='Continuar..')
gameinstruction.configure (texto='Pressione Enter depois de digitar a palavra')

Recupere a palavra digitada em wordentry usando o pegar() função e verifique se é igual à palavra exibida na tela. Se sim, incremente a pontuação e reflita na etiqueta de pontuação. Caso contrário, incremente a variável perdida em um.

Reordene os itens na lista de palavras e exiba o primeiro elemento. Use o excluir() função do zero ao último índice no widget de entrada de palavras para limpar o conteúdo.

se wordentry.get() == labelforward['texto']:
pontuação += 1
scorelabelcount.configure (texto=pontuação)
outro:
errou += 1

aleatório.shuffle(palavras)
labelforward.configure (texto=palavras[0])
entrada de palavras.excluir(0, FIM)

Defina startlabel, labelforward, scorelabel, scorelabelcount, labelfortimer, timercount e gameinstruction usando o widget Label. O widget de rótulo pega na janela pai na qual você deseja colocá-lo, o texto que deve ser exibido, o tipo de fonte, tamanho, cor e estilo junto com a cor de fundo do rótulo.

Passe as coordenadas X e Y para o lugar() método para organizar os rótulos em uma posição específica.

startlabel = Rótulo (tela principal, text='Jogo de digitação',fonte=('arial',30,'itálico em negrito'),bg='preto',fg='branco')
startlabel.place (x=375, y=50)

labelforward = Rótulo (tela principal, text=' ',fonte=('arial',45,'itálico em negrito'),fg='verde')
labelforward.place (x=350, y=240)

scorelabel = Rótulo (tela principal, text='Sua pontuação:',fonte=('arial',25,'itálico em negrito'),fg='marrom')
scorelabel.place (x=110, y=100)

scorelabelcount = Label (Tela principal, text=pontuação, fonte=('arial',25,'itálico em negrito'),fg='roxo')
scorelabelcount.place (x=250, y=180)

labelfortimer = Label (tela principal, text='Tempo restante:',fonte=('arial',25,'itálico em negrito'),fg='marrom')
labelfortimer.place (x=700, y=100)

timercount = Label (Tela principal, texto=hora, fonte=('arial',25,'itálico em negrito'),fg='roxo')
timercount.place (x=700, y=180)

gameinstruction = Label (tela principal, text='Pressione Enter depois de digitar a palavra',fonte=('arial',25,'itálico em negrito'),fg='cinza')
gameinstruction.place (x=250, y=500)

Defina um widget de entrada que aceite a palavra digitada. Defina a janela pai na qual deseja colocá-la, o tipo de fonte, tamanho, estilo junto com o tamanho da borda e a propriedade justificar. Use o método place() para posicionar o widget de entrada e o focus_set() método para ativar a caixa de entrada para entrada.

wordentry = Entrada (Tela principal, fonte =('arial',25,'itálico em negrito'), bd=10, justifique ='Centro')
wordentry.place (x=350, y=330)
entrada de palavras.focus_set()

Uma etapa importante é vincular a tecla Enter a um evento na janela do Tkinter. Isso garante que, quando o jogador pressionar Digitar uma determinada função seria executada. Para conseguir isso, você passa o string e a função game() como parâmetros para o vincular() função. O circuito principal() A função diz ao Python para executar o loop de eventos Tkinter e ouvir eventos (como pressionamentos de botão) até que você feche a janela.

Mainscreen.bind('', jogo)
circuito principal()

Junte todo o código e execute-o para jogar o jogo de teste de digitação ao seu alcance.

Saída do aplicativo de teste de digitação do Python

Ao executar o programa acima, aparece uma janela com 1.000 pixels de largura e 600 pixels de altura, com fundo aqua, placar, contagem regressiva e uma instrução para iniciar o jogo.

Ao apertar Enter, o jogo começa e a cada resposta correta o programa incrementa a pontuação em um.

Quando o tempo acabar, o programa exibe a pontuação final junto com uma caixa de diálogo para sair do jogo.

Idéias da GUI do Tkinter para iniciantes

O Tkinter é uma ferramenta muito poderosa que você pode usar para criar aplicativos simples a totalmente funcionais, atraentes e robustos. Mesmo um novato pode usar o Tkinter. Alguns exemplos de projetos que você pode criar são um jogo de perguntas e respostas, um catálogo de endereços, uma lista de tarefas ou um visualizador de imagens.

Se você quiser ir além do Tkinter, algumas das alternativas populares incluem Qt designer, Kivy, Toga e BeeWare. Todas essas estruturas são versáteis e oferecem suporte ao desenvolvimento de plataforma cruzada, para que você possa executar seus aplicativos sem problemas em qualquer ambiente.