Projeto de Games

Ao longo deste módulo, você aprenderá GitHub, VS Code, lógica de programação, HTML, CSS e JavaScript — construindo, passo a passo, um Jogo de Adivinhação completo e publicado no GitHub Pages.

📅 10 Encontros Semanais 💻 HTML · CSS · JavaScript 🛠️ GitHub + VS Code 🌐 Publicado no GitHub Pages

📌 Visão Geral da Disciplina

O objetivo desta disciplina não é transformar os alunos em programadores, mas usar a construção de um jogo real — o Jogo de Adivinhação — como pretexto para apresentar o ciclo completo do desenvolvimento web de forma prática e motivadora. Partindo do zero, os alunos aprenderão a usar ferramentas profissionais, entenderão como a internet funciona e, passo a passo, criarão e publicarão seu primeiro jogo online.

Ao final da disciplina, cada aluno terá um jogo de adivinhação publicado na internet, acessível por qualquer pessoa pelo celular ou computador, com sua própria personalização visual.

🎯 Perfil dos Alunos

  • Ensino médio (qualquer série)
  • Nenhuma experiência com programação exigida
  • Acesso a um computador com navegador
  • Conta no GitHub criada na 1ª aula

🏆 O que os Alunos Entregarão

  • Repositório público no GitHub
  • Jogo publicado no GitHub Pages
  • Código comentado e organizado
  • Personalização visual única
Módulo 1 · Ferramentas
Aula01
GitHub + VS Code

Conta, Repositório e o Editor no Navegador

O que será trabalhado
  • O que é o GitHub: portfólio de código, histórico de versões, colaboração
  • Criar conta gratuita em github.com e configurar nome e foto de perfil
  • O que é um repositório: a "pasta" do projeto na nuvem
  • Criar um repositório público chamado jogo-adivinhacao
  • Abrir o VS Code diretamente no navegador com o atalho github.dev
  • Criar o primeiro arquivo index.html com apenas um título <h1>
  • O conceito de commit: salvar uma versão do trabalho com uma mensagem descritiva
  • Fazer o primeiro commit e ver o arquivo aparecer no repositório
Conceitos-chave
GitHub Repositório Commit VS Code Web github.dev
Entrega: Repositório jogo-adivinhacao criado com um arquivo index.html contendo <h1>Meu Jogo de Adivinhação</h1> e primeiro commit registrado.
▶ Ver Slides da Aula 1
Módulo 2 · Como a Web Funciona
Aula02
Conceitos Web

Internet, Navegadores e Como um Site é Publicado

O que será trabalhado
  • O que é a internet: rede de computadores conectados ao redor do mundo
  • Cliente e servidor: quem pede (navegador) e quem responde (servidor)
  • O que acontece quando você digita um endereço no navegador: DNS, HTTP e resposta
  • O que são HTML, CSS e JavaScript: a trindade do desenvolvimento web
  • Analogia: HTML = estrutura (paredes), CSS = decoração (tinta), JS = comportamento (portas, luz)
  • O que é o GitHub Pages e como ele transforma um repositório em site
  • Ativar o GitHub Pages no repositório e acessar o link gerado
  • Inspecionar o código-fonte de uma página com F12 no navegador
Conceitos-chave
Cliente / Servidor HTTP GitHub Pages DevTools (F12) HTML · CSS · JS
Entrega: GitHub Pages ativado. Link público do repositório funcionando e acessível pelo celular.
▶ Ver Slides da Aula 2
Módulo 3 · HTML + CSS
Aula03
HTML

Estrutura da Página – Esqueleto do Jogo

O que será trabalhado
  • Estrutura obrigatória do HTML: <!DOCTYPE html>, <html>, <head> e <body>
  • A tag <head>: onde ficam configurações como charset, viewport e título da aba
  • O que são tags e atributos: <tag atributo="valor">
  • Tags usadas no jogo: <h1>, <p>, <div>, <input>, <button>
  • O atributo type="number" no input: limitar a entrada a números
  • Os atributos min e max: definindo o intervalo válido (1 a 100)
  • O atributo id: como dar nome único aos elementos para o JavaScript encontrá-los
  • Construir o HTML completo do jogo: título, instrução, campo de input, botão e div de mensagem
Destaques do código do jogo
<input type="number" id="TXTPalpite"> <button id="BTNAdivinhar"> <div id="DIVMensagem"> min="1" max="100"
Entrega: Página HTML publicada no GitHub Pages com título, campo de número, botão e área de mensagem — sem estilo ainda, mas com todos os elementos funcionando como estrutura.
Aula04
CSS

Estilizando o Jogo – Cores, Layout e Botão

O que será trabalhado
  • A tag <style> dentro do <head>: onde escrever o CSS
  • Seletores: por tag (body), por classe (.container), por id (#BTNAdivinhar)
  • Propriedades básicas: color, background-color, font-family, font-size
  • O Box Model explicado visualmente: conteúdo → paddingbordermargin
  • Centralizar com display: flex, justify-content: center e align-items: center
  • Criar o card branco centralizado: background-color: #fff, border-radius, box-shadow, padding
  • Estilizar o botão: cor de fundo verde, texto branco, border: none, border-radius, cursor: pointer
  • Estilizar o input: padding, font-size, width
  • Classe .message: definir tamanho e margem da área de feedback
Destaques do código do jogo
display: flex height: 100vh border-radius box-shadow background-color cursor: pointer
Entrega: Página visualmente parecida com o jogo final. Alunos são incentivados a personalizar as cores do fundo e do botão conforme seu gosto.
Módulo 4 · JavaScript Básico
Aula05
JavaScript

Variáveis, Tipos e Funções – O Programa Ganha Vida

O que será trabalhado
  • A tag <script>: onde escrever JavaScript no HTML
  • O que é uma variável: uma caixa com nome que guarda um valor
  • Declarar variáveis com let: let numeroSecreto = 42
  • Tipos de dados: número (5), texto ("olá"), booleano (true / false)
  • Como o JavaScript se comunica com o HTML: document.getElementById('id')
  • Ler e alterar conteúdo de elementos: .textContent e .value
  • O que é uma função: um bloco de código com nome que pode ser chamado
  • Declarar e chamar funções: function verificarPalpite() { ... }
  • Conectar o botão à função com o atributo onclick
  • Testar no console do navegador (F12): console.log() como ferramenta de depuração
Destaques do código do jogo
let / const document.getElementById() .value / .textContent function onclick console.log()
Entrega: Botão "Adivinhar" chamando a função verificarPalpite(). Ao clicar, a mensagem "Função chamada!" aparece na tela via textContent.
Aula06
JavaScript

Condicionais, Comparações e Geração do Número Secreto

O que será trabalhado
  • Estrutura if / else if / else: tomada de decisão no código
  • Operadores de comparação: === (igual), > (maior), < (menor)
  • Diferença entre = (atribuição) e === (comparação estrita)
  • Gerar número aleatório: Math.random() — retorna um decimal entre 0 e 1
  • Ajustar o intervalo: Math.floor(Math.random() * 100) + 1 — número de 1 a 100
  • Converter texto em número: parseInt() — por que o valor do input é uma string?
  • Verificar se o valor é inválido: isNaN() — "Is Not a Number?"
  • Condição dupla com || (OU): validar fora do intervalo ou campo vazio
  • Escrever um algoritmo de adivinhação no papel antes de codificar
Destaques do código do jogo
if / else Math.random() Math.floor() parseInt() isNaN() operador ||
Entrega: Número secreto gerado aleatoriamente. A função detecta se o campo está vazio ou fora do intervalo e exibe mensagem de erro adequada.
Módulo 5 · Construindo o Jogo
Aula07
Lógica do Jogo

Verificando o Palpite – Maior, Menor ou Acertou!

O que será trabalhado
  • Implementar a lógica central da função verificarPalpite() passo a passo
  • Ler o valor digitado pelo jogador: document.getElementById('TXTPalpite').value
  • Converter para número inteiro com parseInt() e armazenar em chuteDoJogador
  • Validar o palpite: checar isNaN() e limites 1–100 antes de processar
  • Comparar o palpite com o número secreto usando ===, > e <
  • Template literals para montar mensagens dinâmicas: `O número é ${numeroSecreto}`
  • Exibir a mensagem correta: "Parabéns!", "O número secreto é maior" ou "...é menor"
  • Entender por que a mensagem aparece na DIVMensagem usando .textContent
Destaques do código do jogo
chuteDoJogador === numeroSecreto template literal `${}` .textContent if / else if / else
Entrega: O jogo já responde corretamente ao palpite — exibe "maior", "menor" ou "Parabéns!" na tela. Ainda sem controle de tentativas.
Aula08
Lógica do Jogo

Tentativas, Fim de Jogo e Desabilitar Elementos

O que será trabalhado
  • Criar a variável qtdTentativas = 5 para controlar o número máximo de jogadas
  • Decrementar o contador a cada tentativa: qtdTentativas--
  • Exibir as tentativas restantes na mensagem de feedback
  • Condição de derrota: qtdTentativas === 0 — exibir "Fim de jogo! O número era X"
  • Condição de vitória: comparação correta — exibir "Parabéns! Você acertou em X tentativas!"
  • Criar a função disableGame(): desabilitar o botão e o input após o fim do jogo
  • Modificar atributo via JS: document.getElementById('BTNAdivinhar').disabled = true
  • CSS para o estado desabilitado: button:disabled { background-color: #ccc; cursor: not-allowed; }
  • Lógica de fluxo completa: validação → decremento → vitória → dicas com tentativas → derrota
Destaques do código do jogo
qtdTentativas-- disableGame() .disabled = true button:disabled (CSS) Fluxo if/else completo
Entrega: Jogo 100% funcional! O jogador tem exatamente 5 tentativas. O jogo trava ao vencer ou perder e exibe a mensagem correta em ambos os casos.
Aula09
Testes e Personalização

Testar, Depurar e Dar a Sua Cara ao Jogo

O que será trabalhado
  • O que é depuração (debugging): encontrar e corrigir erros no código
  • Usar o console do navegador (F12) para identificar erros com mensagens em vermelho
  • Testar o jogo sistematicamente: acertar de primeira, errar todas as tentativas, digitar letras
  • Personalização visual: alterar cores do fundo, do botão e das mensagens
  • Alterar a dificuldade: mudar o número de tentativas ou o intervalo do número secreto
  • Adicionar um botão "Jogar Novamente" que recarrega a página: location.reload()
  • Melhorar as mensagens: incluir emojis, adicionar dica de "quente" (diferença pequena) e "frio" (diferença grande)
  • Comentar o código: // isso é um comentário — explicar o que cada trecho faz
Desafios extras opcionais
Dica "quente/frio" por proximidade Botão Jogar Novamente Cores das mensagens por resultado Contador de tentativas visível
Entrega: Jogo testado, sem bugs conhecidos, com personalização visual própria e código comentado. Pronto para apresentação.
Módulo 6 · Publicação e Portfólio
Aula10
Apresentação Final

GitHub Pages, Portfólio e Demonstração do Jogo

O que será trabalhado
  • Verificar que o GitHub Pages está ativo e que o link público do jogo funciona
  • Revisão final do código: organização, indentação e comentários
  • Fazer o commit final com a mensagem "Versão final do jogo de adivinhação"
  • Cada aluno apresenta seu jogo para a turma (3–5 minutos): o que fez, o que foi difícil, o que personalizo
  • Revisão do percurso: HTML (estrutura) → CSS (aparência) → JavaScript (comportamento)
  • Como o GitHub funciona como portfólio profissional para a área de tecnologia
  • Próximos passos: o que aprender depois — React, Python, Unity, bancos de dados
  • Compartilhar o link do jogo com amigos e família pelo celular
Produto Final
🌐 Link público do jogo 📁 Repositório no GitHub 🎮 Jogo personalizado e funcional 💼 Portfólio iniciado
🏆 Entrega Final: URL pública do jogo hospedado no GitHub Pages, compartilhada com o professor e com a turma.

📊 Resumo das Aulas

Aula Tema Tecnologia Resultado Visível
01 GitHub e VS Code no Navegador GitHub, git Repositório criado, primeiro commit
02 Como a Web Funciona HTTP, GitHub Pages Link público do site funcionando
03 Estrutura HTML do Jogo HTML Página com input, botão e área de mensagem
04 CSS – Estilo e Layout CSS, Flexbox Página visualmente apresentável
05 JS – Variáveis e Funções JavaScript Botão chamando função e atualizando a tela
06 JS – Condicionais e Math.random() JavaScript Número secreto gerado, validação de input
07 Lógica de Comparação do Palpite JavaScript Feedback "maior/menor/acertou!" funcionando
08 Tentativas e Fim de Jogo JavaScript 🎮 Jogo 100% funcional!
09 Testes, Depuração e Personalização JavaScript + CSS Jogo sem bugs, com identidade visual própria
10 GitHub Pages + Apresentação Final GitHub Pages 🌐 Link público compartilhado com a turma
© 2026 Ciro Macedo