Meydan okuma
Bir dize girdisi verildiğinde, onun yıkılmış sürümünü çıktılar.
Süreç
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
- Dizeyi dikey olarak yerleştirin.
1Ve(height of the column of characters) - 1ile rastgele bir yön arasında (sol veya sağ) rastgele bir tamsayı seçin .- Bu sayıda karakteri o yönde döndürün (bu boşluklar boşsa 4. adıma gidin; değilse 2. adıma geri dönün).
- Bırakın bu karakterler yerçekimi yüzünden düşsün.
- Karakter sütununun
1yüksekliği, yanındaki sütunların yüksekliğinden en fazla olana kadar tekrarlayın (yani sütunu daha fazla yıkmak imkansız hale gelir ("2-4. Adımlar")). - Karakterleri
1çevreleyen sütunlardan bir veya daha fazlasından daha uzun olan başka bir karakter sütunu varsa (yani, yıkılabilir), artık yıkanamayana kadar bu sütunu art arda yıkın. Yıkılabilir birden çok sütun varsa, en uzun sütunu tamamen yıkın (birden çok en yüksek sütun varsa, en soldaki sütunu tamamen yıkın). - Tüm sütunlar artık yıkanamayana kadar tekrarlayın.
Girişte boşluk karakterleri varsa, önce hepsini bir kerede yok edin.
C
o
d
e -> oC -> -> ...
de
G G G
o o o
l l l
f f defoC
kurallar
- Standart boşluklar yasaktır.
- Sondaki ve önde gelen yeni satırlara izin verilir.
- Programınız bir dize / eşdeğeri yazdırabilir veya döndürebilir.
- Çıktı deterministik olmamalıdır (giriş yıkılamazsa).
Bu kod golf , bu yüzden kendi dillerinde en küçük bayt sayımları kazanır!
1
Rastgele burada gerçekten gerekli olup olmadığından şüphe
—
duyarım
@KeyuGan İnsanların sabit sayıda karakter seçmesi ve sola / sağa değişmesi durumunda zorluğun oldukça önemsiz olacağını düşünüyorum.
—
JungHwan Min
Hala 4'ün rastgele olduğunu ve adil bir zar
—
atışıyla
@someone
—
JungHwan Min
4çıktıyı deterministik yapar, yani "rastgele" yapmaz. Bunu açık hale getirmek için kuralları düzenledi.
@ XKCD yüzünden 4 kişiden bahsediyor musunuz?
—
Giacomo Garabello