Meydan okuma
Dize olarak veya standart girdi yoluyla yazdırılabilir ascii karakterlerin dikdörtgen bir ızgarası verildiğinde, boşluk olmayan karakterleri alttaki bir kazığa daraltan bir işlev veya program yazın.
Kurallar:
- Çıktı, girdi ile aynı boyutlara ve karakterlere sahiptir.
- A boşluk olmayan karakteri
(row a,column b)
bir boşluk karakteri olamaz' '
de(a-1, b)
,(a-1,b-1)
ya da(a-1,b+1)
sıraları en alt kadar numaralandırılmıştır. Bunun sonucu olarak tüm dikey kazıklar yanlara doğru çökmelidir. - Boşluk olmayan bir karakter çoğu
(initial height - final height)
yerde sağa veya sola hareket edebilir (bkz.Şekil 1). - Resmin karakterleri ekrandan düşmeden daraltmak için yeterli alana sahip olduğunu varsayabilirsiniz.
Şekil 1: Sırasıyla @#$
gösterildiği gibi karakterler için olası son konumlar x,y,z
.
..............
...@..........
..xxx.........
.xxxxx...#....
xxxxxxx.yyy.$.
Karakterlerin daraltma sırası serbestçe seçilebilir. Sondaki boşluklar iyi değil ama sondaki satırsonları iyi.
Bu kod golf , bu yüzden bayt en kısa cevap kazanır!
Misal
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
Bir olası çıktı:
--(_
/----|/|(o_)
/|/~\---~\\/o)
..."Have*you~mooed~today?"...