You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/pt/4-typing-game
localizeflow[bot] 72504672c7
chore(i18n): sync translations with latest source changes (chunk 11/20, 100 files)
1 month ago
..
solution 🌐 Update translations via Co-op Translator 6 months ago
typing-game chore(i18n): sync translations with latest source changes (chunk 11/20, 100 files) 1 month ago
README.md chore(i18n): sync translations with latest source changes (chunk 11/20, 100 files) 1 month ago

README.md

Programação Orientada a Eventos - Construa um Jogo de Digitação

journey
    title A sua Jornada de Desenvolvimento do Jogo de Digitação
    section Fundação
      Planear estrutura do jogo: 3: Student
      Desenhar interface do utilizador: 4: Student
      Configurar elementos HTML: 4: Student
    section Funcionalidade
      Gerir entrada do utilizador: 4: Student
      Monitorizar tempo: 5: Student
      Calcular precisão: 5: Student
    section Funcionalidades
      Adicionar feedback visual: 5: Student
      Implementar lógica do jogo: 5: Student
      Aperfeiçoar experiência: 5: Student

Introdução

Aqui está algo que todo desenvolvedor sabe mas raramente fala: digitar rápido é um superpoder! 🚀 Pense nisso - quanto mais rápido conseguir colocar as suas ideias da cabeça para o editor de código, mais a sua criatividade pode fluir. É como ter uma ligação direta entre os seus pensamentos e o ecrã.

pie title Funcionalidades do Jogo
    "Feedback em Tempo Real" : 25
    "Monitorização de Desempenho" : 20
    "Interface Interativa" : 20
    "Sistema de Temporizador" : 15
    "Gestão de Citações" : 10
    "Exibição de Resultados" : 10

Quer saber uma das melhores formas de melhorar esta competência? Adivinhou - vamos criar um jogo!

flowchart LR
    A[Jogador inicia o jogo] --> B[Citação aleatória exibida]
    B --> C[Jogador escreve caracteres]
    C --> D{Carácter correto?}
    D -->|Sim| E[Destaque verde]
    D -->|Não| F[Destaque vermelho]
    E --> G[Atualizar precisão]
    F --> G
    G --> H{Citação completa?}
    H -->|Não| C
    H -->|Sim| I[Calcular palavras por minuto]
    I --> J[Exibir resultados]
    J --> K[Jogar novamente?]
    K -->|Sim| B
    K -->|Não| L[Fim do jogo]
    
    style A fill:#e1f5fe
    style D fill:#fff3e0
    style E fill:#e8f5e8
    style F fill:#ffebee
    style I fill:#f3e5f5

Vamos criar juntos um jogo de digitação incrível!

Pronto para colocar em prática todas as competências de JavaScript, HTML e CSS que tem vindo a aprender? Vamos construir um jogo de digitação que o desafiará com citações aleatórias do lendário detetive Sherlock Holmes. O jogo vai registar a velocidade e precisão da sua digitação - e acredite, é mais viciante do que pode imaginar!

mindmap
  root((Desenvolvimento de Jogo de Digitação))
    User Interface
      Input Elements
      Visual Feedback
      Responsive Design
      Accessibility
    Game Logic
      Quote Selection
      Timer Management
      Accuracy Tracking
      Score Calculation
    Event Handling
      Keyboard Input
      Button Clicks
      Real-time Updates
      Game State Changes
    Performance Metrics
      Words Per Minute
      Character Accuracy
      Error Tracking
      Progress Display
    User Experience
      Immediate Feedback
      Clear Instructions
      Engaging Content
      Achievement System

demo

O Que Precisa de Saber

flowchart TD
    A[Ação do Utilizador] --> B{Tipo de Evento?}
    B -->|Pressionar Tecla| C[Evento de Teclado]
    B -->|Clique do Botão| D[Evento de Rato]
    B -->|Temporizador| E[Evento Temporal]
    
    C --> F[Verificar Carácter]
    D --> G[Iniciar/Resetar Jogo]
    E --> H[Atualizar Temporizador]
    
    F --> I{Correto?}
    I -->|Sim| J[Destacar Verde]
    I -->|Não| K[Destacar Vermelho]
    
    J --> L[Atualizar Pontuação]
    K --> L
    L --> M[Verificar Estado do Jogo]
    
    G --> N[Gerar Nova Citação]
    H --> O[Mostrar Tempo]
    
    M --> P{Jogo Completo?}
    P -->|Sim| Q[Mostrar Resultados]
    P -->|Não| R[Continuar Jogo]
    
    style A fill:#e1f5fe
    style F fill:#e8f5e8
    style I fill:#fff3e0
    style Q fill:#f3e5f5

Antes de começarmos, certifique-se de que está confortável com estes conceitos (não se preocupe se precisa de um pequeno repescar - todos já passámos por isso!):

  • Criar controlos de texto e botões
  • CSS e definição de estilos usando classes
  • Noções básicas de JavaScript
    • Criar um array
    • Criar um número aleatório
    • Obter a hora atual

Se alguma destas áreas lhe parecer um pouco enferrujada, não há problema! Por vezes, a melhor forma de fixar o conhecimento é mergulhar num projeto e ir descobrindo pelo caminho.

🔄 Verificação Pedagógica

Avaliação de Base: Antes de começar o desenvolvimento, assegure-se de que compreende:

  • Como funcionam os formulários HTML e os elementos de input
  • Classes CSS e estilos dinâmicos
  • Listeners e manipuladores de eventos em JavaScript
  • Manipulação de arrays e seleção aleatória
  • Medição e cálculo de tempo

Autoavaliação Rápida: Consegue explicar como estes conceitos funcionam em conjunto num jogo interativo?

  • Eventos disparam quando os utilizadores interagem com os elementos
  • Manipuladores processam esses eventos e atualizam o estado do jogo
  • CSS fornece feedback visual às ações do utilizador
  • Temporização permite medir performance e progresso no jogo
quadrantChart
    title Desenvolvimento de Competências em Jogos de Digitação
    x-axis Iniciante --> Especialista
    y-axis Estático --> Interativo
    quadrant-1 Jogos Avançados
    quadrant-2 Aplicações em Tempo Real
    quadrant-3 Páginas Básicas
    quadrant-4 Sites Interativos
    
    HTML Forms: [0.3, 0.2]
    CSS Styling: [0.4, 0.3]
    Event Handling: [0.7, 0.8]
    Game Logic: [0.8, 0.9]
    Performance Tracking: [0.9, 0.7]

Vamos Construir Isto!

Criar um jogo de digitação usando programação orientada a eventos

O Que Pode Experimentar Nos Próximos 5 Minutos

  • Abra a consola do navegador e experimente ouvir eventos de teclado com addEventListener
  • Crie uma página HTML simples com um campo de input e teste a deteção da digitação
  • Pratique manipulação de strings comparando texto digitado com texto alvo
  • Experimente setTimeout para compreender funções de temporização

🎯 O Que Pode Concluir Nesta Hora

  • Complete o quiz pós-aula e compreenda programação orientada a eventos
  • Construa uma versão básica do jogo de digitação com validação das palavras
  • Adicione feedback visual para digitação correta e incorreta
  • Implemente um sistema simples de pontuação baseado na velocidade e precisão
  • Estilize o seu jogo com CSS para torná-lo visualmente apelativo

📅 O Seu Desenvolvimento de Jogo ao Longo da Semana

  • Complete o jogo de digitação com todas as funcionalidades e polimento
  • Acrescente níveis de dificuldade com complexidade variável das palavras
  • Implemente acompanhamento de estatísticas do utilizador (PMW, precisão ao longo do tempo)
  • Crie efeitos sonoros e animações para melhorar a experiência do utilizador
  • Torne o seu jogo responsivo para dispositivos móveis e táteis
  • Partilhe o seu jogo online e recolha feedback dos utilizadores

🌟 O Seu Desenvolvimento Interativo Ao Longo do Mês

  • Construa múltiplos jogos explorando diferentes padrões de interação
  • Aprenda sobre ciclos de jogo, gestão de estado e otimização de performance
  • Contribua para projetos open source de desenvolvimento de jogos
  • Domine conceitos avançados de temporização e animações fluidas
  • Crie um portefólio que mostre várias aplicações interativas
  • Mentore outros interessados em desenvolvimento de jogos e interação com utilizadores

🎯 O Seu Cronograma de Domínio do Jogo de Digitação

timeline
    title Progressão de Aprendizagem em Desenvolvimento de Jogos
    
    section Configuração (10 minutos)
        Estrutura do Projeto: Fundação HTML
                             : Configuração de estilos CSS
                             : Criação do ficheiro JavaScript
        
    section Interface do Utilizador (20 minutos)
        Elementos Interativos: Campos de input
                              : Controles de botões
                              : Áreas de visualização
                              : Layout responsivo
        
    section Tratamento de Eventos (25 minutos)
        Interação do Utilizador: Eventos de teclado
                                : Eventos de rato
                                : Feedback em tempo real
                                : Gestão de estado
        
    section Lógica do Jogo (30 minutos)
        Funcionalidade Principal: Geração de citações
                                 : Comparação de caracteres
                                 : Cálculo de precisão
                                 : Implementação do temporizador
        
    section Monitorização de Desempenho (35 minutos)
        Métricas & Análise: Cálculo de palavras por minuto (WPM)
                           : Monitorização de erros
                           : Visualização do progresso
                           : Exibição de resultados
        
    section Aprimoramento & Refinamento (45 minutos)
        Experiência do Utilizador: Feedback visual
                                 : Efeitos sonoros
                                 : Animações
                                 : Funcionalidades de acessibilidade
        
    section Funcionalidades Avançadas (1 semana)
        Funcionalidade Estendida: Níveis de dificuldade
                                  : Tabelas de líderes
                                  : Citações personalizadas
                                  : Opções multijogador
        
    section Competências Profissionais (1 mês)
        Desenvolvimento de Jogos: Otimização de desempenho
                                : Arquitetura de código
                                : Estratégias de teste
                                : Padrões de implantação

🛠️ Resumo da Sua Caixa de Ferramentas de Desenvolvimento de Jogos

Depois de completar este projeto, terá dominado:

  • Programação Orientada a Eventos: Interfaces de utilizador responsivas que reagem à entrada
  • Feedback em Tempo Real: Atualizações instantâneas visuais e de performance
  • Medida de Performance: Sistemas precisos de medição e pontuação temporais
  • Gestão do Estado do Jogo: Controlar o fluxo da aplicação e a experiência do utilizador
  • Design Interativo: Criar experiências cativantes e viciantes
  • APIs Modernas da Web: Utilizar capacidades do navegador para interações ricas
  • Padrões de Acessibilidade: Design inclusivo para todos os utilizadores

Aplicações no Mundo Real: Estas competências aplicam-se diretamente a:

  • Aplicações Web: Qualquer interface interativa ou dashboard
  • Software Educativo: Plataformas de aprendizagem e ferramentas de avaliação de competências
  • Ferramentas de Produtividade: Editores de texto, IDEs e software colaborativo
  • Indústria dos Jogos: Jogos no browser e entretenimento interativo
  • Desenvolvimento Móvel: Interfaces táteis e manipulação de gestos

Próximo Nível: Está pronto para explorar frameworks de jogos avançados, sistemas multiplayer em tempo real ou aplicações interativas complexas!

Créditos

Escrito com ♥️ por Christopher Harrison


Aviso Legal: Este documento foi traduzido utilizando o serviço de tradução automática Co-op Translator. Embora nos empenhemos em garantir a precisão, por favor tenha em atenção que traduções automáticas podem conter erros ou imprecisões. O documento original no seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes da utilização desta tradução.