Pular para conteúdo

Mini-Projeto: Simulador de Elevador 🏢

Neste projeto, vamos usar o poder do match e dos loops para controlar a lógica de um elevador em um prédio de 10 andares.

📋 Requisitos

  1. Estado do Elevador: Mantenha o andar atual em uma variável mutável.
  2. Match Exaustivo: Use match para lidar com os comandos: "Sobe", "Desce" e "Sair".
  3. Limite de Segurança: O elevador não deve subir acima do 10º andar nem descer abaixo do térreo (0).
  4. Loop Principal: O programa deve rodar continuamente até que o usuário escolha "Sair".

🚀 Guia de Execução

  1. Estrutura básica:
    fn main() {
        let mut andar_atual = 0;
    
        loop {
            println!("--- Elevador (Andar: {}) ---", andar_atual);
            println!("Comandos: [s]obe, [d]esce, [q]uit");
    
            // Simulação de entrada (em um projeto real usaríamos std::io)
            let comando = "s"; // Mude aqui para testar
    
            match comando {
                "s" => {
                    if andar_atual < 10 {
                        andar_atual += 1;
                        println!("Subindo...");
                    } else {
                        println!("Já estamos no topo!");
                    }
                },
                "d" => {
                    if andar_atual > 0 {
                        andar_atual -= 1;
                        println!("Descendo...");
                    } else {
                        println!("Já estamos no térreo!");
                    }
                },
                "q" => {
                    println!("Desligando elevador...");
                    break;
                },
                _ => println!("Comando inválido!"),
            }
    
            // Remova o break se estiver usando entrada real de teclado
            break; 
        }
    }
    

✅ Critérios de Aceite

  • [ ] O elevador respeita os limites (0 a 10).
  • [ ] O match trata todos os comandos e o caso padrão.
  • [ ] O loop é encerrado corretamente com o comando de saída.