Trilhas
/
WebAssembly
WebAssembly
/
Exercícios
/
Simulador de robô
Simulador de robô

Simulador de robô

Médio

Instruções

Escreva um simulador de robô.

A instalação de testes de uma fábrica de robôs precisa de um programa para verificar os movimentos dos robôs.

Os robôs têm três movimentos possíveis:

  • virar à direita
  • virar à esquerda
  • avançar

Os robôs são posicionados em uma grade infinita hipotética, virados para uma direção específica (norte, leste, sul ou oeste), em um conjunto de coordenadas {x,y}, por exemplo, {3,8}, com as coordenadas aumentando para o norte e para o leste.

Em seguida, o robô recebe uma série de instruções, e então a instalação de testes verifica a nova posição do robô e para qual direção ele está apontando.

  • A string de letras "RAALAL" significa:
    • Virar à direita
    • Avançar duas vezes
    • Virar à esquerda
    • Avançar uma vez
    • Virar à esquerda mais uma vez
  • Digamos que um robô comece em {7, 3} virado para o norte. Então, executar essa sequência de instruções deve deixá-lo em {9, 4} virado para o oeste.

A direção para a qual o robô está virado será expressa como um dos seguintes números:

  • Norte = 0
  • Leste = 1
  • Sul = 2
  • Oeste = 3

Quando a entrada for inválida, retorne uma direção de -1 (os outros valores serão ignorados).

Memória reservada

O buffer para a string de entrada usa os bytes 64-319 da memória linear.

A string de entrada pode ser modificada, se você quiser.


Fonte

Inspirado em uma pergunta de entrevista em uma empresa famosa.
Editar via GitHub O link abre em uma nova janela ou aba
WebAssembly Exercism

Tudo pronto para começar Simulador de robô?

Crie sua conta no Exercism para aprender e dominar WebAssembly com 87 exercícios e mentoria humana de verdade, tudo de graça.