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.
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, errouse 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
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.