🚀 Gincana Python: Desafio dos Elevadores Inteligentes
Você foi convocado para resolver um dos maiores problemas da faculdade — usando Python + Lógica de Programação. Prepare seu compilador. O desafio começa agora.



Profª Maristela
🏫 O Problema da Faculdade
Todo dia, a mesma cena se repete nos corredores: filas, alunos que não respeitam as filas por não entender a lógica e estudantes atrasados para a aula. Será que o sistema atual parece tomar decisões completamente aleatórias?
Demora
Elevadores que demoram minutos para responder a uma chamada simples.
😤 Filas Eternas
Corredores cheios nos horários de pico, especialmente no intervalo.
🤔 Escolhas Estranhas
O sistema ignora andares próximos e vai buscar quem está mais longe.
🚨 Caos no Pico
Nos horários de troca de aula, o sistema simplesmente parece colapsar.

Agora vocês serão os engenheiros responsáveis por resolver esse caos — com Python! 🐍
🎯 O Desafio: O Que Vocês Vão Construir
🏗️ A Estrutura
Seu sistema deverá controlar:
  • 2 elevadores simultâneos
  • 4 andares acima do térreo
  • 2 subsolos (andares negativos)
  • Total de 7 paradas possíveis
O Sistema Deverá:
Receber chamadas
Atender usuários em qualquer andar válido
Escolher o melhor elevador
Calcular qual está mais próximo do usuário
Mover e atualizar
Transportar o usuário e registrar a nova posição
Validar entradas
Bloquear andares inválidos e entradas incorretas
🏢 Estrutura da Faculdade
Cada andar tem um código numérico que será usado diretamente no seu programa Python. Os subsolos usam números negativos — conceito importante para trabalhar com variáveis inteiras!

💡 Dica de programação: Use uma lista Python para representar os andares válidos:
andares_validos = [-2, -1, 0, 1, 2, 3, 4]
Isso facilita a validação de entradas do usuário!

⚠️ Andares fora desse intervalo devem ser rejeitados pelo sistema com uma mensagem de erro clara.
⚙️ Regras Básicas do Sistema
Antes de codar, é preciso entender a lógica de negócio do sistema. Essas são as regras que seu programa deve seguir — pense nelas como os requisitos do cliente!
1
Identificar Posições
O sistema conhece onde cada elevador está a qualquer momento.
2
Calcular Distância
Usa abs() para encontrar o elevador mais próximo do usuário.
3
Mover o Elevador
Desloca até o andar do usuário e depois ao destino escolhido.
4
Atualizar Estado
Registra a nova posição do elevador após cada movimentação.
5
Validar Entradas
Impede que o usuário informe andares que não existem no prédio.
6
Exibir Log
Mostra cada etapa da movimentação de forma clara no terminal.
🧠 Simulação em Ação
Veja como o sistema se comporta em um exemplo real. Elevador A está no térreo, Elevador B está no 4º andar. Um usuário chama do Subsolo 1 e quer ir ao 3º andar:
🐍 Conceitos Python que Vocês Vão Usar
Este desafio foi desenhado para colocar em prática os principais pilares da programação com Python. Cada conceito tem um papel real no sistema de elevadores:
Variáveis e Condicionais
Armazenar posições dos elevadores e tomar decisões com if/elif/else.
Laços de Repetição
Usar while e for para manter o sistema rodando e processar filas.
Funções
Organizar o código em blocos reutilizáveis como def escolher_elevador().
Listas e Operadores
Guardar chamadas pendentes em listas e calcular distâncias com abs().

🎓 Bônus: Quem aplicar modularização (dividir o código em módulos separados) ganha pontos extras na categoria Organização do Código!
🎮 Níveis da Gincana
A gincana tem 4 níveis de dificuldade. Comece pelo básico e avance conforme seu time ganhar confiança. Cada nível entrega mais valor ao sistema!
🟢 Básico
Movimentação simples e escolha do elevador mais próximo.
🟡 Intermediário
Funções bem definidas, filas de chamadas e múltiplos usuários simultâneos.
🔴 Avançado
Prioridades por tipo de usuário, otimização de rotas e estatísticas de uso.
Hacker
Interface gráfica, IA para previsão de demanda, dashboard e animações em tempo real.
💡 Criatividade Vale Ouro!
O sistema básico é só o começo. Seu time pode adicionar funcionalidades extras que mostram criatividade e domínio da linguagem. Quanto mais original, melhor sua pontuação na categoria Criatividade!
🌟 Elevador VIP
Acesso restrito a professores ou diretoria, com validação de senha.
🔧 Elevador Quebrado
Simula falhas e redireciona chamadas automaticamente para o outro elevador.
Prioridade PcD
Pessoas com deficiência têm prioridade na fila, independente do andar.
Horário de Pico
O sistema detecta o horário e muda a estratégia de atendimento.
🔋 Economia de Energia
Elevadores vão para o andar de repouso inteligente quando ociosos.
🤖 IA Simples
Aprende os andares mais chamados e posiciona o elevador estrategicamente.
🎲 Modo Caos da Faculdade
Para os grupos que querem chegar ao Nível Hacker, o sistema pode gerar eventos aleatórios que simulam imprevistos reais. Use o módulo random do Python para tornar o sistema mais vivo e divertido:
import random # Lista de eventos possíveis eventos = [ "
🏆 Critérios de Avaliação
A pontuação máxima é 100% dos pontos. Cada critério avalia um aspecto diferente do seu projeto — não se preocupe só em fazer funcionar, o como você faz também conta!
30%
⚙️ Funcionamento
O sistema executa corretamente as operações básicas de movimentação.
20%
🧠 Lógica
A lógica de escolha do elevador e cálculo de distância é correta e eficiente.
20%
📂 Organização
Código limpo, comentado, com funções bem definidas e nomes claros.
20%
💡 Criatividade
Funcionalidades extras, eventos, modos especiais e inovação geral.
10%
🖥️ Interface
Visual do terminal ou interface gráfica clara, amigável e bem formatada.

🌟 Dica de ouro: Um código funcionando com boa organização e criatividade pontua muito mais do que um código complexo e bagunçado. Clareza é uma habilidade de programador sênior!

💬 Apresentação conta: Explique suas decisões de design para a banca. Saber comunicar o que você construiu é tão importante quanto construir.
🥇 Premiações da Gincana
Os melhores projetos em cada categoria serão premiados e reconhecidos. Cada troféu representa uma habilidade diferente — e um time pode ganhar mais de uma categoria!
🏆 Melhor Lógica
Para o sistema mais eficiente e bem estruturado, com cálculos impecáveis.
🎨 Mais Criativo
Para o projeto que trouxe as funcionalidades mais originais e surpreendentes.
🧠 Mais Inteligente
Para o elevador que tomou as melhores decisões automáticas e adaptativas.
😂 Prêmio Caos
Para o projeto com os eventos mais divertidos e situações mais imprevisíveis!
💻 Melhor Interface
Para o projeto com a apresentação visual mais bonita e fácil de usar.
🚀 Missão Aceita!
Vocês foram convocados para transformar um problema real da faculdade em uma solução tecnológica inteligente usando Python. Não é só uma gincana — é o seu primeiro projeto de engenharia de software.
"O melhor elevador não é o mais rápido… é o mais inteligente." 😄
🐍 Codem com Paixão
Cada linha que vocês escrevem resolve um problema real.
🤝 Trabalhem em Time
Os melhores sistemas são construídos por pessoas que colaboram.
🏆 Divirtam-se!
Programação é criatividade. Boa sorte, programadores! 🎉