## formiga de Langton multicolorida

Existem várias formas de extender o conceito de formiga de Langton. Neste exercício, vamos explorar a primeira, a usar mais que duas cores. Ela se mantem muito similar ao caso base: o comportamento em cada passo ainda depende da cor do chão, mas tem mais que duas possibilidades. Pode ter mais que um tipo de formiga, a depender do que decide fazer para cada cor. Por exemplo, a formiga LRL recebe 3 cores. Ela vira a esquerda na primiera cor, a direita na segunda e a esquerda na terceira. De acordo com esta definição, a formiga básica é uma RL (já que ela vira a direita em células brancas e a esquerda em pretas).

Algumas destas formigas desenham padrões fascinantes (alterne o mundo para vê-los): LLRR constrói uma figura simétrica semelhante a uma bola, LRRRRRLLR desenha um quadrado, LLRRRLRLRLLR desenha um padrão regular convolucionado depois de um período de aparente caos e RRLLLRLLLRRR parece preencher uma ampulheta...

Transformar o seu buggle numa formiga de Langton genérica não é muito complicado, embora não seja totalmente trivial. Como anteriormente, tem que escrever uma função `step`. Mas desta vez, ela recebe duas arrays como parâmetros. A primeira define as regras para seguir a depender da cor do chão enquanto a segunda dá a sequência de cores a usar. Por exemplo, a formiga básica deve ter [!java]`{'R', 'L'}` e `{Cor.branco, Cor.preto}`[/!] [!python]`['R', 'L']` e `[Cor.branco, Cor.preto]`[/!] [!scala]`Array('R', 'L')` e `Array(Cor.branco, Cor.preto)`[/!] como argumentos.

Em cada passo, deve então ter que aplicar o seguinte pseudo-código:

- Encontre a posição da cor do chão na sequência de cores;
- Vire a esquerda ou direita a depender do conteúdo da array de regras nesta posição;
- Marque o chão com a próxima cor na sequência (a cor seguinte à última é a primeira);
- ande um passo para frente.

Agora tem informação o suficiente para conseguir.