Teste uma decisão do controlador antes de adicionar uma política de roteamento
Comece com JavaScript nas funções init e update do jogo e pressione Start para observar a simulação. Use a referência da API do jogo para o comportamento exato de evento idle e goToFloor. Um primeiro exercício é entender quando um elevador ocioso recebe sua próxima tarefa. Observe esse evento e o movimento resultante antes de adicionar várias condições, para poder explicar qual parte do controlador emitiu uma solicitação.
Em seguida, inspecione os destinos dos passageiros. O movimento por si só não significa que os passageiros estejam sendo atendidos. Leia o evento floor_button_pressed na referência e compare as solicitações com a rota que você observa. Se vários elevadores repetirem o mesmo trajeto, algumas filas ainda poderão esperar. Crie a partir de um pequeno controlador que você entenda, em vez de copiar uma política complexa e presumir que ela satisfaz o objetivo de passageiro ou tempo de espera do desafio atual.
Compare uma alteração de código com o objetivo real do desafio
Antes de iniciar a simulação, leia a condição de aprovação e escolha um comportamento para inspecionar, como tempo ocioso, paradas repetidas ou passageiros esperando em um determinado andar. Mude uma decisão e execute a simulação novamente. Mais movimento do elevador não garante que o controlador supere o desafio. Compare as filas visíveis e o resultado exibido com o objetivo, em vez de usar o movimento como único sinal de sucesso.
Ao editar destinationQueue diretamente, siga o requisito da referência para chamar checkDestinationQueue para que a fila revisada entre em vigor; solicitações normais goToFloor já lidam com destinos enfileirados. Mantenha essas abordagens distintas durante a depuração. Este centro descreve uma simulação de programação de navegador, não um software para um elevador real ou um sistema de segurança de produção. Isso não garante que um controlador passará em todos os desafios. Use a documentação exata da API dentro do jogo e registre quais eventos e alterações de roteamento melhoraram o teste específico que você acabou de executar.
Para uma revisão concreta, observe um andar com fila enquanto um elevador fica parado. Identifique qual manipulador emite a próxima solicitação goToFloor e se essa solicitação atende os passageiros em espera ou envia o elevador para outro lugar. Mude essa opção de roteamento e compare o resultado do desafio. Se vários manipuladores competirem, simplifique o controlador até poder explicar a sequência de solicitações. Use a referência da API para os eventos exatos com suporte. Observar uma fila e uma decisão por vez fornece evidências para uma revisão sem afirmar que se trata de um controlador ideal universal.
Dicas e estratégia para Elevator Saga
Marque uma dica para praticar na próxima partida. Esta lista não altera o jogo nem salva seu progresso.
Perguntas e respostas sobre Elevator Saga
Em que idioma devo escrever?
O controlador utiliza JavaScript, com funções init e update no editor do jogo.
Este elevador funciona de verdade?
Não. É uma simulação de programação inteiramente integrada ao jogo de navegador.
Posso usar isso para praticar programação?
Sim, especialmente o controle orientado a eventos e o teste de pequenas alterações. O jogo é baseado no projeto Elevator Saga de magwo, licenciado sob a licença MIT; não se trata de um curso de certificação.
Por que passageiros esperam mesmo com o elevador em movimento?
Repetir uma rota fixa não atende automaticamente todos os andares pedidos. Trate floor_button_pressed e use goToFloor para os destinos dos passageiros. Compare as filas com o objetivo antes de adicionar paradas. Ao editar destinationQueue diretamente, chame checkDestinationQueue para aplicar a mudança; goToFloor já trata os pedidos normais.
Controles e instruções completas
Controles e instruções completas
Jogar Elevator Saga