Capítulo 16: Movimentação Avançada e Listas de Rota
🎯 Objetivo da Aula
Um motorista de entrega raramente faz apenas uma parada. Nesta aula, você aprenderá a criar Rotas de Entrega. O objetivo é utilizar listas para guardar várias coordenadas e fazer com que seu ator percorra todos os pontos automaticamente, simulando um sistema de roteirização logística (Routing).
🏢 O Cenário Prático (Seu Desafio)
Situacao: O caminhão da FastLog tem 3 entregas para fazer na cidade (Palco). O Problema: Como programar o caminhão para ir ao ponto 1, esperar a descarga, ir ao ponto 2 e assim por diante, sem precisar de dezenas de blocos manuais?
Missão: Criar uma “Lista de Rota” e fazer o caminhão seguir os endereços cadastrados.
🧠 Fundamentos: A Teoria Traduzida
1. Roteirização por Listas
Podemos guardar os valores de X em uma lista e os valores de Y em outra. O computador lê a linha 1 das duas listas e vai para o destino.
🎮 Exemplo 1: Cotidiano (GPS)
Seguir o caminho: Rua A -> Rua B -> Rua C.
💰 Exemplo 2: Técnico (Entrega de Última Milha)
Parada 1: (X:100, Y:50) -> Parada 2: (X:-50, Y:80) -> Parada 3: (X:0, Y:-100).
graph LR
L[Lista de Rota] --> P1[Ponto 1: Local A]
L --> P2[Ponto 2: Local B]
L --> P3[Ponto 3: Local C]
P1 -- Deslizar --> P2
P2 -- Deslizar --> P3
style P1 fill:#2ecc71,stroke:#fff,color:#fff
style P3 fill:#2ecc71,stroke:#fff,color:#fff2. O Loop de Percorrimento
Usamos um loop repita (tamanho da lista) vezes para ler cada linha e executar o movimento.
🛠️ Mão na Massa: Atividade 16 - Sistema de Roteirização
Vamos programar a rota automática:
Passo 1: Preparação
- Crie duas listas:
Rota_XeRota_Y. - Adicione 3 valores em cada (Ex: X: 100, -100, 0 | Y: 100, 100, -100).
Passo 2: O Código do GPS
Encaixe os blocos:
- 🟡 Eventos:
[quando clicar em 🏁] - 🔵 Movimento:
[vá para x:0 y:0] - 🟧 Variáveis:
[mude (i) para 1] - 🟠 Controle:
[repita (tamanho de (Rota_X)) vezes]- 🔵 Movimento:
[deslize por 1 seg até x:(item (i) de (Rota_X)) y:(item (i) de (Rota_Y))] - 🟣 Aparência:
[diga (junte "Entregando no Ponto " e (i)) por 2 segundos] - 🟧 Variáveis:
[adicione 1 a (i)]
- 🔵 Movimento:
- 🟣 Aparência:
[diga "Rota Finalizada!" por 2 segundos]
✅ Resultado Esperado
O caminhão deve percorrer os três pontos definidos nas listas, parando em cada um deles para dar a mensagem de entrega.
📤 Instruções de Entrega (Microsoft Teams)
- Adicione um quarto ponto na sua lista de rota.
- Faça o caminhão emitir um som de buzina em cada parada.
- Envie o print do código no Microsoft Teams na tarefa “Scratch Cap 16 - Roteirização”.
💡 Checkpoint de Lógica
- Para TI (Reutilização): Se você usa o mesmo grupo de blocos em vários lugares, crie um Bloco Personalizado (Meus Blocos). Isso deixa o seu roteiro muito mais limpo e profissional.
- Para ADM (Padronização): Meus Blocos funcionam como as Regras de Negócio da empresa. Elas definem um padrão que deve ser seguido toda vez que aquela tarefa for executada.
🔥 Desafio de Fixação (ADM/TI)
Módulo de Aviso:
Crie um bloco chamado Aviso_de_Seguranca. Dentro dele, coloque comandos para o ator mudar para a fantasia de alerta, tocar um som e dizer “Atenção: Área Restrita!”. Use esse bloco 3 vezes no seu programa.
🔑 Gabarito de Lógica (Blocos)
GPS Básico:
[repita (tamanho da lista) vezes][deslize até x:(item i de RotaX) y:(item i de RotaY)][adicione 1 a i]