Desafío
Dada una entrada de cadena, genera la versión demolida de la misma.
El proceso
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 la cuerda verticalmente.
- Seleccione un entero aleatorio entre
1
y(height of the column of characters) - 1
y una dirección aleatoria (izquierda o derecha). - Gire ese número de caracteres en esa dirección (si esos espacios están desocupados, vaya al paso 4; si no, vuelva al paso 2).
- Deja que esos personajes caigan debido a la gravedad.
- Repita hasta que la altura de la columna de caracteres sea como máximo
1
mayor que la altura de las columnas a su lado (es decir, se hace imposible demoler aún más ("pasos 2-4") la columna). - Si hay otra columna de caracteres que tiene más de un
1
carácter más alto que una o más de sus columnas circundantes (es decir, puede demoler), demuela repetidamente esa columna hasta que ya no pueda demoler. Si hay varias columnas capaces de demoler, demuele completamente la columna más alta (si hay varias columnas más altas, demuela completamente la más a la izquierda). - Repita hasta que todas las columnas ya no sean demolibles.
Si hay caracteres de espacio en la entrada, demórelos primero, todos a la vez.
C
o
d
e -> oC -> -> ...
de
G G G
o o o
l l l
f f defoC
Reglas
- Las lagunas estándar están prohibidas.
- Se permiten nuevas líneas finales y principales.
- Su programa puede imprimir o devolver una cadena / equivalente.
- La salida debe ser no determinista (a menos que la entrada no sea demolible).
Este es el código de golf , por lo que las presentaciones con el menor número de bytes en sus idiomas ganan.
4
haría que la salida sea determinista, es decir, no "aleatoria". Editó las reglas para hacerlo explícito.Respuestas:
Python 2 ,
622595573552542534527520515 bytesPruébalo en línea!
fuente
h+R(X)*-~i
puede serh-~i*R(X)
.L=[...];D=L
puede serD=L=[...]
.