Wyzwanie
Biorąc pod uwagę ciąg wejściowy, wypisz jego zburzoną wersję.
Proces
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
- Umieść sznurek pionowo.
- Wybierz losową liczbę całkowitą pomiędzy
1
i(height of the column of characters) - 1
losowy kierunek (w lewo lub w prawo). - Obróć tę liczbę znaków w tym kierunku (jeśli te miejsca nie są zajęte, przejdź do kroku 4; jeśli nie, wróć do kroku 2).
- Niech te postacie spadną z powodu grawitacji.
- Powtarzaj tę czynność, dopóki wysokość kolumny znaków nie będzie co najwyżej
1
większa niż wysokość kolumn obok niej (tzn. Niemożliwe będzie dalsze wyburzenie („kroki 2-4”) kolumny). - Jeśli istnieje inna kolumna znaków, która jest więcej niż
1
postać wyższa niż jedna lub więcej otaczających ją kolumn (tj. Możliwa do wyburzenia), kilkakrotnie wyburz tę kolumnę, aż nie będzie już możliwa do wyburzenia. Jeśli istnieje wiele kolumn, które można wyburzyć, całkowicie wyburz najwyższą kolumnę (jeśli jest wiele najwyższych kolumn, całkowicie wyburz lewą). - Powtarzaj, aż wszystkie kolumny nie będą już możliwe do wyburzenia.
Jeśli na wejściu znajdują się spacje, zniszcz je najpierw, wszystkie na raz.
C
o
d
e -> oC -> -> ...
de
G G G
o o o
l l l
f f defoC
Zasady
- Standardowe luki są zabronione.
- Dozwolone są końcowe i wiodące znaki nowej linii.
- Twój program może wydrukować lub zwrócić ciąg / ekwiwalent.
- Dane wyjściowe muszą być niedeterministyczne (chyba że dane wejściowe nie są możliwe do wyburzenia).
To jest kod-golf , więc wygrane są zgłoszenia o najmniejszej liczbie bajtów w ich językach!
4
sprawi, że wynik będzie deterministyczny, tzn. nie będzie „losowy”. Zmodyfikowałem reguły, aby to jednoznacznie wyrazić.