Desafio
Dada uma entrada de sequência, produza a versão demolida dela.
O processo
P
r Pr r
o o o
g g g
r r r rogr r
a -> a -> a -> a -> a -> -> -> -> ->
m m m m m
m m m m m mmar m
i i i i i i i mi m
n n n n gn gn gn gn gni mgni
g g Pg Pg roPg roPg roPgmar roPgmar roPgmar roPgmar
- Coloque a corda verticalmente.
- Selecione um número inteiro aleatório entre
1
e(height of the column of characters) - 1
e uma direção aleatória (esquerda ou direita). - Gire esse número de caracteres nessa direção (se esses espaços estiverem desocupados, vá para a etapa 4; caso contrário, volte para a etapa 2).
- Deixe esses caracteres caírem devido à gravidade.
- Repita até que a altura da coluna de caracteres seja no máximo
1
maior que a altura das colunas próximas a ela (ou seja, torna-se impossível demolir ainda mais ("etapas 2-4") a coluna). - Se houver outra coluna de caracteres com mais do
1
que um caractere mais alto que uma ou mais colunas adjacentes (por exemplo, capacidade de demolição), demolir essa coluna repetidamente até que não seja mais capaz de demolir. Se houver várias colunas capazes de demolir, demolir completamente a coluna mais alta (se houver várias colunas mais altas, demolir completamente a coluna mais à esquerda). - Repita até que todas as colunas não possam mais ser demolidas.
Se houver caracteres de espaço na entrada, destrua-os primeiro, de uma só vez.
C
o
d
e -> oC -> -> ...
de
G G G
o o o
l l l
f f defoC
Regras
- As brechas padrão são proibidas.
- Novas linhas à direita e à direita são permitidas.
- Seu programa pode imprimir ou retornar uma string / equivalente.
- A saída deve ser não determinística (a menos que a entrada não possa ser demolida).
Isso é código-golfe , então os envios com a menor contagem de bytes em seus idiomas vencem!
1
Eu duvido se aleatório é realmente necessário aqui
—
Keyu Gan
@KeyuGan Acho que o desafio seria bastante trivial se as pessoas tivessem que selecionar um número fixo de caracteres e alternar entre esquerda / direita.
—
JungHwan Min 13/10/19
Ainda podemos dizer que 4 é aleatória e devolvido por um rolo justo dados
—
minha pronome é monicareinstate
@
—
JungHwan Min 13/10/19
4
alguém tornaria a saída determinística, ou seja, não "aleatória". Editou as regras para tornar isso explícito.
@ alguém está se referindo às 4 por causa do XKCD ?
—
Giacomo Garabello