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:
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.
Neste exercício, você deve ter notado que o stub define getters, como getX(), mas os testes acessam o valor diretamente como .x. Isso se deve à forma como o Groovy define propriedades. Vamos por partes:
Pontos-chave sobre as propriedades do Groovy:
final).Neste exercício, especificamos apenas os getters necessários (e, portanto, as propriedades conforme descrito acima) para exigir uma implementação adequada. Você tem liberdade para decidir quais campos (e seus tipos) são mais adequados para a sua solução.
Se você quiser explorar mais o tema de campos e propriedades, consulte o Capítulo 3.3. Campos e propriedades na documentação do Groovy.
Crie sua conta no Exercism para aprender e dominar Groovy com 66 exercícios e mentoria humana de verdade, tudo de graça.