Floresta Mágica CFOBI PJ

por

Escrito por João Pedro Castro

Conhecimentos Prévios Necessários:

Para processar cada comando precisamos saber somente dois coisas a cada momento: as coordenadas atuais (chame de (x, y)) e a direção atual d, que vamos atribuir como um inteiro 0 até 3, sendo 0 norte, 1 leste, 2 sul e 3 oeste (começando do norte na ordem horária). Agora fica fácil, se for um comando de girar fale que d := (d + \frac{p}{90})~mod~4; explicando, \frac{p}{90} é a quantidade de posições horárias que você vai pular, e colocamos mod~4 para o problema de você estar na posição 2 e pular 3, e acabar na posição 5 (que não existe) ao invés da 1 (ou seja, é cíclico). Agora, caso seja um de mover pontos, é só pensar um pouco para ver onde N move em cada uma das 4 direções (só colocar 4 ifs) e atualizar (x, y).

Clique aqui para ver o código