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/br/6-space-game/6-end-condition/assignment.md

9.3 KiB

Crie um Jogo de Exemplo

Visão Geral da Tarefa

Agora que você dominou as condições de término e a funcionalidade de reinício no seu jogo espacial, é hora de aplicar esses conceitos em uma experiência de jogo completamente nova. Você irá projetar e construir seu próprio jogo que demonstre diferentes padrões de condições de término e mecânicas de reinício.

Esta tarefa desafia você a pensar criativamente sobre design de jogos enquanto pratica as habilidades técnicas que aprendeu. Você explorará diferentes cenários de vitória e derrota, implementará progressão do jogador e criará experiências de reinício envolventes.

Requisitos do Projeto

Recursos Essenciais do Jogo

Seu jogo deve incluir os seguintes elementos essenciais:

Variedade de Condições de Término: Implemente pelo menos duas maneiras diferentes de o jogo terminar:

  • Vitória baseada em pontos: O jogador atinge uma pontuação alvo ou coleta itens específicos
  • Derrota baseada em vidas: O jogador perde todas as vidas disponíveis ou pontos de saúde
  • Conclusão de objetivos: Todos os inimigos derrotados, itens específicos coletados ou metas alcançadas
  • Baseado em tempo: O jogo termina após uma duração definida ou quando o cronômetro chega a zero

Funcionalidade de Reinício:

  • Limpar estado do jogo: Remova todos os objetos do jogo anterior e redefina as variáveis
  • Reinicializar sistemas: Comece do zero com novos status do jogador, inimigos e objetivos
  • Controles intuitivos: Forneça instruções claras para reiniciar o jogo

Feedback ao Jogador:

  • Mensagens de vitória: Celebre as conquistas do jogador com feedback positivo
  • Mensagens de derrota: Forneça mensagens encorajadoras que motivem a jogar novamente
  • Indicadores de progresso: Mostre a pontuação atual, vidas ou status dos objetivos

Ideias e Inspiração para o Jogo

Escolha um dos conceitos de jogo abaixo ou crie o seu próprio:

1. Jogo de Aventura no Console

Crie uma aventura baseada em texto com mecânicas de combate:

Hero> Strikes with broadsword - orc takes 3p damage
Orc> Hits with club - hero takes 2p damage  
Hero> Kicks - orc takes 1p damage
Game> Orc is defeated - Hero collects 2 coins
Game> ****No more monsters, you have conquered the evil fortress****

Recursos principais para implementar:

  • Combate baseado em turnos com diferentes opções de ataque
  • Pontos de saúde para o jogador e os inimigos
  • Sistema de inventário para coletar moedas ou itens
  • Vários tipos de inimigos com diferentes níveis de dificuldade
  • Condição de vitória quando todos os inimigos forem derrotados

2. Jogo de Coleta

  • Objetivo: Coletar itens específicos enquanto evita obstáculos
  • Condições de término: Atingir a quantidade de coleta alvo ou perder todas as vidas
  • Progressão: Os itens se tornam mais difíceis de alcançar conforme o jogo avança

3. Jogo de Puzzle

  • Objetivo: Resolver quebra-cabeças cada vez mais difíceis
  • Condições de término: Completar todos os níveis ou ficar sem movimentos/tempo
  • Reinício: Redefinir para o primeiro nível com progresso limpo

4. Jogo de Defesa

  • Objetivo: Proteger sua base de ondas de inimigos
  • Condições de término: Sobreviver a todas as ondas (vitória) ou base destruída (derrota)
  • Progressão: As ondas de inimigos aumentam em dificuldade e número

Diretrizes de Implementação

Começando

  1. Planeje o design do seu jogo:

    • Esboce o loop básico de jogabilidade
    • Defina claramente suas condições de término
    • Identifique quais dados precisam ser redefinidos no reinício
  2. Configure a estrutura do seu projeto:

    my-game/
    ├── index.html
    ├── style.css
    ├── game.js
    └── README.md
    
  3. Crie o loop principal do jogo:

    • Inicialize o estado do jogo
    • Lide com a entrada do usuário
    • Atualize a lógica do jogo
    • Verifique as condições de término
    • Renderize o estado atual

Requisitos Técnicos

Use JavaScript Moderno:

  • Utilize const e let para declarações de variáveis
  • Use funções de seta quando apropriado
  • Implemente recursos ES6+ como template literals e destructuring

Arquitetura Orientada a Eventos:

  • Crie manipuladores de eventos para interações do usuário
  • Implemente mudanças no estado do jogo através de eventos
  • Use listeners de eventos para funcionalidade de reinício

Práticas de Código Limpo:

  • Escreva funções com responsabilidades únicas
  • Use nomes descritivos para variáveis e funções
  • Adicione comentários explicando a lógica e as regras do jogo
  • Organize o código em seções lógicas

Requisitos de Entrega

Entregáveis

  1. Arquivos completos do jogo: Todos os arquivos HTML, CSS e JavaScript necessários para rodar seu jogo
  2. README.md: Documentação explicando:
    • Como jogar seu jogo
    • Quais condições de término você implementou
    • Instruções para reiniciar
    • Quaisquer recursos ou mecânicas especiais
  3. Comentários no código: Explicações claras sobre a lógica e os algoritmos do jogo

Lista de Verificação de Testes

Antes de enviar, verifique se o seu jogo:

  • Roda sem erros no console do navegador
  • Implementa múltiplas condições de término conforme especificado
  • Reinicia corretamente com estado limpo
  • Fornece feedback claro aos jogadores sobre o status do jogo
  • Utiliza sintaxe moderna de JavaScript e boas práticas
  • Inclui documentação abrangente no README.md

Rubrica de Avaliação

Critério Exemplar (4) Proficiente (3) Em Desenvolvimento (2) Iniciante (1)
Funcionalidade do Jogo Jogo completo com múltiplas condições de término, reinício suave e experiência de jogo refinada Jogo completo com condições básicas de término e mecanismo de reinício funcional Jogo parcial com algumas condições de término implementadas, reinício pode ter pequenos problemas Jogo incompleto com funcionalidade limitada e bugs significativos
Qualidade do Código Código limpo, bem organizado, utilizando práticas modernas de JavaScript, comentários abrangentes e excelente estrutura Boa organização do código com sintaxe moderna, comentários adequados e estrutura clara Organização básica do código com algumas práticas modernas, comentários mínimos Organização ruim do código, sintaxe desatualizada, falta de comentários e estrutura
Experiência do Usuário Jogabilidade intuitiva com instruções claras, excelente feedback e experiência envolvente de término/reinício Boa jogabilidade com instruções adequadas e feedback funcional Jogabilidade básica com instruções mínimas, feedback limitado sobre o estado do jogo Jogabilidade confusa com instruções pouco claras e feedback ruim ao usuário
Implementação Técnica Demonstra domínio dos conceitos de desenvolvimento de jogos, manipulação de eventos e gerenciamento de estado Mostra sólida compreensão dos conceitos de jogos com boa implementação Compreensão básica com implementação aceitável Compreensão limitada com implementação ruim
Documentação README abrangente com instruções claras, código bem documentado e evidências de testes completos Boa documentação com instruções claras e comentários adequados no código Documentação básica com instruções mínimas Documentação ruim ou ausente

Escala de Pontuação

  • Exemplar (16-20 pontos): Excede as expectativas com recursos criativos e implementação refinada
  • Proficiente (12-15 pontos): Atende a todos os requisitos com execução sólida
  • Em Desenvolvimento (8-11 pontos): Atende à maioria dos requisitos com pequenos problemas
  • Iniciante (4-7 pontos): Atende a alguns requisitos, mas precisa de melhorias significativas

Recursos Adicionais de Aprendizado

💡 Dica Pro: Comece simples e adicione recursos gradualmente. Um jogo simples e bem polido é melhor do que um jogo complexo cheio de bugs!


Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em 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 do uso desta tradução.