Programcılar genellikle çizim fraktalları takıntılı . Bence yeni bir bilgisayar ortamına ihtiyacımız var.
H ağaç yatay ve dikey çizgiler yapılmış fraktal oldukça basit bir türüdür. İşte onuncu yinelemede ( Wikipedia nezaket ):
Şimdi, görüntüdeki her satırın standart bir bilgisayar dosya sisteminde bir dizin (klasör) olduğunu düşünün. En küçük çizgiler hariç tümü kendilerinden daha küçük iki çizgiyle kesişir; bu iki küçük çizgi , büyük çizginin alt dizinleridir . Böylece, ortadaki büyük yatay çizgi, görüntüdeki diğer çizgilerin ebeveynleri, büyükanne ve büyükbabaları vb. Olan en büyük iki dikey çizginin üst dizinidir.
Meydan okuma
Stdin veya komut satırı (veya en yakın alternatif) aracılığıyla pozitif bir tamsayı N alan ve H ağacı fraktalının Nth yinelemesini yansıtan bir dizin ağacı oluşturan bir program yazın.
İlk yineleme (N = 1) tek bir yatay çizgidir. Sonraki her yinelemede, mevcut çizgilerin uçlarına yeni bir dikey veya yatay çizgi kümesi eklenir. Böylece N = 2 için iki dikey çizgi (H şekli yaparak) eklenir, N = 3 için buna dört yatay çizgi eklenir, vb.
Kök dizinin adı her zaman olmalıdır tree
. Dizinlerinin isimleri kullanarak üst doğruya göre olan yönü aynı olmalıdır right
, left
, up
ve down
.
Kök dizin her zaman yatay bir çizgi olduğundan, her zaman right
ve left
alt dizinleri olacaktır. Ancak bu ikisi up
ve down
alt dizinleri olacak right
ve bunlar left
ve benzerleri olacaktır.
Yineleme sınırının sonundaki dizinler boş olmalıdır.
Misal
N = 3 için dizin ağacı şöyle görünmelidir:
tree
right
up
down
left
up
down
İlave bilgi
- İdeal olarak
tree
dizin, kaynak kodun bulunduğu klasörde açılır, ancak bazı çalışma dizinine giderse sorun olmaz. tree
Sizinkinin oluşturulacağı yerde önceden var olan bir dizin olmadığını varsayabilirsiniz .- Programınızın her zaman aynı ortak modern işletim sisteminde (Mac / Windows / Linux) çalıştırılacağını varsayabilirsiniz. Temelde tüm işletim sistemlerinde çalışmayan bir dosya ayırıcı kullanma konusunda endişelenmeyin.
puanlama
Bu yüzden en kısa kod kod golf, olduğu bayt içinde kazanır.
tree
hep olmak zorundaleft
veright
yerineup
vedown
?