Empurrador de blocos
Crie uma função que retorne o estado de um tabuleiro após n movimentos. Há diferentes tipos de blocos no tabuleiro, representados como strings.
>é um empurrador que se move para a direita a cada turno e empurra um bloco para a direita se ele ocupar o mesmo espaço que o empurrador.'#'é um bloco que pode ser empurrado pelo empurrador. Se um bloco for empurrado sobre outro bloco, o outro bloco também entra na cadeia de empurrão.'-'é um espaço vazio para o qual um bloco pode ser empurrado.
Observe que o empurrador pode empurrar qualquer quantidade de blocos de uma só vez, mas sempre para quando a cadeia de empurrão atinge o fim da lista.
Exemplos
block_pushing(['-', '>', '#', '-', '#', '-', '-', '-'], 1) ➞ ['-', '-', '>', '#', '#', '-', '-', '-']
block_pushing(['>', '#', '-', '#', '-', '-', '#'], 10) ➞ ['-', '-', '-', '>', '#', '#', '#']
block_pushing(['>', '-', '>', '#', '-', '-', '#', '-'], 2) ➞ ['-', '-', '>', '-', '>', '#', '#', '-']
block_pushing(['>', '>', '>', '-'], 3) ➞ ['-', '>', '>', '>']Observações
- Pode haver mais de um empurrador no tabuleiro ao mesmo tempo.
- Os empurradores são blocos sólidos, então uma cadeia de empurradores também deve parar ao atingir o fim da lista.