Capítulo 19: Arquitetura de Software e Gamificação Corporativa
🎯 Objetivo da Aula
Softwares profissionais não são amontoados desordenados de blocos: eles seguem padrões claros de Arquitetura de Software, separando a interface do usuário das regras de negócio. Além disso, as grandes empresas utilizam a Gamificação (Serious Games) para treinar motoristas e operadores de empilhadeira em ambientes virtuais seguros com pontuações, vidas e cronômetros antes de irem para o galpão real.
Ao final desta aula, você será capaz de:
- Compreender o padrão arquitetural em 3 camadas: Camada de Apresentação (HUD), Camada de Regras e Camada de Operações.
- Criar um ator invisível dedicado (Game Manager / Gerenciador do Sistema).
- Implementar um Cronômetro Regressivo de tempo operacional.
- Gerenciar Vidas / Integridade de Carga com detecção de colisões.
- Construir o Simulador Gamificado de Treinamento de Manobras da FastLog.
📥 Material de Apoio e Roteiro de Blocos:
- 📄 Roteiro Estruturado (.txt): Baixar Capitulo_19.txt (guia textual com a sequência de blocos)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_19.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: O departamento de Treinamento & Desenvolvimento (T&D) da FastLog quer reduzir os custos com acidentes de empilhadeira no armazém. Você foi encarregado de criar um jogo de simulação corporativa chamado “Desafio do Pátio Seguro”:
- O operador controla a empilhadeira com as setas do teclado.
- Ele tem 60 segundos para transportar 3 caixas até a área de embarque.
- A empilhadeira começa com 3 Pontos de Integridade (Vidas).
- Se colidir com os cones ou paredes do galpão, perde 1 ponto e toca som de colisão.
- Se o tempo acabar ou as vidas zerarem: Falha na Operação (Game Over).
- Se entregar as 3 caixas com tempo e integridade: Certificação Aprovada!
Missão: Programar a arquitetura completa da simulação gamificada no Scratch.
🧠 Fundamentos: Arquitetura em 3 Camadas no Scratch
1. A Separação de Responsabilidades
Para evitar que o código de movimentação da empilhadeira fique poluído com regras de tempo e pontuação, dividimos o projeto em atores especializados:
graph TD
subgraph Camada_Apresentacao ["1. Camada de Apresentação (HUD / Palco)"]
H1["Monitores de Placar: Tempo, Vidas, Caixas Entregues"]
H2["Telas de Vitória e Game Over"]
end
subgraph Camada_Controle ["2. Camada de Regras (Ator Invisível: Gerenciador)"]
G1["Cronômetro Regressivo (1 seg em 1 seg)"]
G2["Auditor de Vitória: Caixas = 3?"]
G3["Auditor de Derrota: Vidas = 0 ou Tempo = 0?"]
end
subgraph Camada_Operacional ["3. Camada de Operações (Atores Físicos)"]
O1["Empilhadeira (Controles de Teclado)"]
O2["Caixas e Cones (Sensores de Colisão)"]
end
O2 -- "Colisão Detectada" --> G3
G1 --> H1
G2 -- "Transmite VITORIA" --> H2
G3 -- "Transmite DERROTA" --> H2
style H1 fill:#2980b9,stroke:#fff,color:#fff
style G1 fill:#e67e22,stroke:#fff,color:#fff
style G2 fill:#27ae60,stroke:#fff,color:#fff
style G3 fill:#c0392b,stroke:#fff,color:#fff
style O1 fill:#8e44ad,stroke:#fff,color:#fff2. O Cronômetro Regressivo Perfeito
Muitos iniciantes usam o sensor nativo de tempo do Scratch, mas para um jogo com controle de pausa, o melhor padrão é criar uma variável Tempo_Restante com um laço repita até que:
📖 Exemplo Guiado: O Gerenciador de Jogo (Game Manager)
Passo a Passo no Scratch 3.0:
- Crie as variáveis globais:
Tempo_Restante,Vidas_VeiculoePontos_Coleta. - Deixe os 3 monitores visíveis no topo do palco organizados como um painel de bordo.
- Crie um novo ator, desenhe um ponto transparente ou um ícone pequeno e chame de
Gerenciador_Sistema:
🛠️ Prática Obrigatória 1: Sensor de Dano e Perda de Vidas
O Desafio:
No ator da Empilhadeira:
- Antes de tudo, programe o controle do operador pelo teclado (a empilhadeira precisa se mover livremente pelo pátio para o desafio funcionar):
quando a tecla [seta para cima v] for pressionada➔mude y por (10).quando a tecla [seta para baixo v] for pressionada➔mude y por (-10).quando a tecla [seta para a esquerda v] for pressionada➔mude x por (-10).quando a tecla [seta para a direita v] for pressionada➔mude x por (10).
- Crie um ator
Cone_Transitona via de manobra. - Na empilhadeira, dentro de um laço
sempre:- Se
<tocando em [Cone_Transito v]?>:- Toque o som de batida:
toque o som [Car Crash v]. - Perca 1 vida:
adicione (-1) a [Vidas_Veiculo v]. - Recue 30 pixels para trás para descolar do cone:
mova (-30) passos. - Pisque em vermelho:
mude o efeito [cor v] para (0)➔espere (0.2) segs➔limpe os efeitos gráficos.
- Toque o som de batida:
- Se
🛠️ Prática Obrigatória 2: Coleta e Embarque de Cargas
No ator Caixa_Carga:
- Comece na posição $x: 0, y: 0$.
- Dentro de um laço
sempre:- Se
<tocando em [Empilhadeira v]?>:- Toque o som de coleta:
toque o som [Collect v]. - Adicione 1 ponto:
adicione (1) a [Pontos_Coleta v]. - Sorteie uma nova posição para a próxima caixa:
vá para x: (número aleatório entre (-180) e (180)) y: (número aleatório entre (-100) e (100)).
- Toque o som de coleta:
- Se
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo do projeto com o nome:
Atividade_19_SeuNome_SeuSobrenome.sb3. - Jogue uma partida completa testando os cenários de vitória e de colisão.
- No Microsoft Teams, envie na tarefa “Scratch Cap 19 - Gamificação e Arquitetura”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aplicar o conceito de Game Loop, State Machines e Gamificação Corporativa. Empresas globais como Walmart, FedEx e Embraer utilizam simulações gamificadas exatamente como essa para certificar seus colaboradores em segurança operacional antes de liberá-los para o trabalho real.
🔥 Desafio de Fixação: Tela de Fim de Jogo (Game Over Screen)
Crie um ator de tela cheia com duas fantasias: Tela_Vitoria e Tela_Derrota.
Programe esse ator para ficar escondido no início (quando clicar em 🏁 ➔ esconda).
Quando receber VITORIA, ele surge no centro com a tela verde. Quando receber GAME_OVER, ele surge com a tela vermelha e encerra todos os scripts com 🟠 pare [tudo].
🔑 Gabarito de Código (Blocos do Scratch)
Prática 1:
Prática 2:
Desafio:
📥 Download do Roteiro Completo desta Aula:
Baixe o arquivo consolidado Capitulo_19.txt ou o pacote compactado (.zip) com os scripts e desafios da aula.
📝 Atividade Extra: Questionário de Fixação (Caderno)
Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que foi estudado neste capítulo. Ao concluir, leve o caderno até o professor para correção e visto.
- Quais são as três camadas do padrão arquitetural apresentado nos Fundamentos para organizar um projeto Scratch?
- Qual é o nome do ator invisível criado no Exemplo Guiado para concentrar a lógica de regras do jogo (Camada de Regras)?
- Quais são os nomes das três variáveis globais criadas no Exemplo Guiado?
- No Exemplo Guiado, quais são as três condições (ligadas por “ou”) que fazem o laço
repita até quedoGerenciador_Sistemaparar de contar o tempo? - Segundo os Fundamentos (“O Cronômetro Regressivo Perfeito”), qual estrutura de laço é recomendada para controlar o tempo do jogo, em vez do sensor nativo de tempo do Scratch?
- Na Prática Obrigatória 1, liste as ações que ocorrem na empilhadeira quando ela toca no ator
Cone_Transito. - Na Prática Obrigatória 2, o que acontece com a
Caixa_Cargano exato momento em que ela é tocada pelaEmpilhadeira? - Segundo o Cenário Prático, quantos segundos o operador tem para completar a missão, e quantas caixas ele precisa transportar até a área de embarque?
- Segundo o Cenário Prático, com quantos Pontos de Integridade (Vidas) a empilhadeira começa a simulação?
- Segundo o Checkpoint de Lógica & Engenharia de Software, a quais conceitos técnicos de desenvolvimento de jogos a gamificação corporativa deste capítulo está associada?