Défi
Étant donné une entrée de chaîne, affichez la version démolie de celle-ci.
Le processus
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
- Placez la chaîne verticalement.
- Sélectionnez un entier aléatoire entre
1
et(height of the column of characters) - 1
et une direction aléatoire (gauche ou droite). - Faites pivoter ce nombre de caractères dans cette direction (si ces espaces sont inoccupés, passez à l'étape 4; sinon, revenez à l'étape 2).
- Laissez ces personnages tomber à cause de la gravité.
- Répétez l'opération jusqu'à ce que la hauteur de la colonne de caractères soit au plus
1
supérieure à la hauteur des colonnes adjacentes (c'est-à-dire qu'il devient impossible de démolir davantage ("étapes 2 à 4") la colonne). - S'il y a une autre colonne de caractères dont la
1
taille est supérieure à celle d'une ou de plusieurs de ses colonnes environnantes (c'est-à-dire pouvant être démolies), démolissez cette colonne à plusieurs reprises jusqu'à ce qu'elle ne soit plus démolissable. S'il y a plusieurs colonnes pouvant être démolies, démolissez complètement la colonne la plus haute (s'il y a plusieurs colonnes les plus hautes, démolissez complètement la plus à gauche). - Répétez jusqu'à ce que toutes les colonnes ne soient plus démolissantes.
S'il y a des caractères d'espace dans l'entrée, démolissez-les d'abord, tout d'un coup.
C
o
d
e -> oC -> -> ...
de
G G G
o o o
l l l
f f defoC
Règles
- Les failles standard sont interdites.
- Les sauts de ligne de fin et de début sont autorisés.
- Votre programme peut imprimer ou renvoyer une chaîne / équivalent.
- La sortie doit être non déterministe (sauf si l'entrée ne peut pas être démolie).
C'est du code-golf , donc les soumissions avec le plus petit nombre d'octets dans leurs langues gagnent!
4
rendrait la sortie déterministe, c'est-à-dire non "aléatoire". Modifié les règles pour le rendre explicite.