Trilhas
/
Erlang
Erlang
/
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.

Implementação

Este exercício exige algum tipo de estado global para o seu robô. No Erlang, isso pode ser feito de várias formas (começando pela mais idiomática):

  1. Use algum gen_* do OTP
  2. Crie seu próprio processo, receba mensagens em um laço e passe o estado adiante como parâmetro.
  3. Crie seu próprio processo e use o dicionário de processos.

Fonte

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

Tudo pronto para começar Simulador de robô?

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