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:#fff

2. 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

  1. Crie duas listas: Rota_X e Rota_Y.
  2. Adicione 3 valores em cada (Ex: X: 100, -100, 0 | Y: 100, 100, -100).

Passo 2: O Código do GPS

Encaixe os blocos:

  1. 🟡 Eventos: [quando clicar em 🏁]
  2. 🔵 Movimento: [vá para x:0 y:0]
  3. 🟧 Variáveis: [mude (i) para 1]
  4. 🟠 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)]
  5. 🟣 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)

  1. Adicione um quarto ponto na sua lista de rota.
  2. Faça o caminhão emitir um som de buzina em cada parada.
  3. 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]