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

Simulador de robô

Fácil

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.

Dicas

Para completar este exercício, você precisa criar o tipo de dados Robot e implementar as seguintes funções:

  • bearing
  • coordinates
  • mkRobot
  • move

Você vai encontrar uma declaração de dados provisória e as assinaturas de tipo já prontas, mas cabe a você definir as funções e criar um tipo de dados, um newtype ou um sinônimo de tipo que faça sentido.


Fonte

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

Tudo pronto para começar Simulador de robô?

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