Bu yarışma bitti. İlginç esolang’ın girişleri için teşekkürler ve kazanan JavaScript gönderimi için Jakuje’ye tebrikler .
Bu sitede ASCII Art Challenges'in büyük geleneğinde, işte bir tane daha. Bir giriş verildiğinde, bir spiral çizin.
&>----v
||>--v|
|||>v||
|||@|||
||^-<||
|^---<|
^-----<
Basit, evet? Heh, heh, heh ... Evet ...
( ASCII Dragons Curve post ve Optimizer'ın ASCII Art of the Day yayınlarından ilham alınmıştır )
Giriş
Girdi, dil eşdeğeri ne olursa olsun, dört bölümden oluşan, her zamanki STDIN / function argümanından / etc den alınan bir dizi parametre şeklinde olacaktır. Bu bölümler dört ayrı argüman, dörtlü, 4 büyüklükte bir dizi vb. Olabilir. Meydan okuma boyunca basitlik ve tutarlılık için girişi tek bir kelime olarak temsil edeceğim.
- Spiralin
2 ≤ x ≤ 20
boyutunu "kare" cinsinden belirten ve her basılan karakterin bir tane "kare" olduğunu gösteren bir tam sayı . Teorik olarak bu, kapsam açısından muazzam olabilir, ancak ASCII sanatını çizdiğimize göre, güvenli bir üst limit 20 olacak, böylece ekrana biraz yakışacaktı. - Başlangıçtaki "kareden" (aşağı, yukarı, sağ, sol) ilk hareketi gösteren tek bir harf
d u r
veyal
. c
"Saatin tersi yönünde" belirten isteğe bağlı .c
İhmal edilirse, spiral için saat yönünde döndürmeyi farz edin.1 ≤ y ≤ 10
Spiral çizmeyi kaç kez tekrarlayacağını belirten son bir tamsayı , önceki spiralin "karesini" kullanarak yenisinin başlangıç "karesini" kullanır. 10 üst limiti seçiyorum çünkü çizimin bir noktada bitmesini istiyorum.- Birkaç örnek giriş:
20lc5
13d2
2rc1
İlgi çekici olan, boyut girişi için tek değerlerin @
her zaman bir spiralin tam merkezi olmasına yol açacağını unutmayın; ancak değerler bile, başlangıç yönüne bağlı olarak dört çapraz yönden herhangi birinde başlangıç "kare" kaymasına sahip olabilir. seyahat. Bu bazı ilginç ... sonuçlara neden olabilir. Aşağıdaki iki çift örneğe bakın.
Giriş şartnamesine uymayan giriş (örn. 11q#s
) Tanımsızdır ve programın uygun şekilde programlanmasını bekliyorum. :)
Çıktı
Çıktı, aşağıdaki özelliklere sahip, dil eşdeğeri STDOUT aracılığıyla yazdırılabilir bir ASCII çıkışıdır:
- (Her bir özyinelemenin) başlangıç "karesi" bir işaret ile işaretlenmelidir
@
. - Son "kare" bir ve işareti ile işaretlenmiş olmalıdır
&
. Birden fazla tekrarlama durumunda, sadece son “kare” işaretlenmelidir&
. - Spiral yolun köşeleri kullanılarak hareket yönünde "işaret" gerekir
< > v ^
. - Dikey seyahat borularla çizilmesi gerekir
|
. - Yatay seyahatin kısa çizgilerle çizilmesi gerekir
-
. - Daha sonra tekrarlananların üzerine yazılan "Kareler", en yeni seyahat yönünü göstermelidir. Bu, "eski" özyinelemelerin üzerine yerleştirilmiş gibi görünen "daha yeni" özyinelemelere yol açacaktır. Bkz
4rc3
aşağıdaki örneğe. - Sondaki bir son satırda tamam, baştaki boşluklar şart olabilir ve buna izin verilir, ancak sondaki alanlara izin verilmez.
- ASCII sanatını STDOUT'a çekmek için kaçış dizileri kullanırsan seni yanaşmam, ama senin içinde sessizce hayal kırıklığına uğradım. (Eğer kullanırsanız, yine de ödül için uygun olacaksınız)
Örnekler
2d4
= 2 çap, aşağı doğru, saat yönünde, 4 tekrarlama yaparak başlar
&@@@@
^<<<<
Bu örnekte, çizim sağ üstte başlar, @
biri aşağıya, biri yukarı sola doğru gider. Bu noktada, 2d
kısmı bitirdik ve böylece 2. özyinelemeyi başlattık, böylece bir @
tane, bir tane sol, bir tane yukarı; daha sonra 3. özyineleme; sonra dördüncü ve son olarak bizim &
.
4rc3
= 4 çap, sağa doğru ilerleyerek başlar, saat yönünün tersine, 3 tekrarlar
&--<
v-<|
|@^|<
>--^|
|@^|<
>--^|
|@^|
>--^
Bu örnekte, çizim alttan başlar @
, birinden yukarıya doğru gider, ortasına gelene @
ve 4rc
kısmı bitirene kadar etrafında spiraller . Bu daha sonra istenen 3 özyinelemeyi almak için iki kez daha tekrar eder. 4rc1
Bu örneğin sadece sol üst 4x4 bloğu olacağını unutmayın .
7u1
= 7 çap, saat yönünde, 1 özyinelemeyle başlayarak başlar (intro ile aynı olduğuna dikkat edin)
&>----v
||>--v|
|||>v||
|||@|||
||^-<||
|^---<|
^-----<
Kazanma ve Kısıtlamalar
Bu Code Golf, bayt cinsinden en küçük cevap kazanıyor. Gönderimler olağan program / function / CJam Kod Bloğu / etc biçiminde olmalıdır. Standart Loophole Kısıtlamaları geçerlidir. Kapalı yolda profesyonel sürücü. Tahriş devam ederse, kullanmayı bırakın ve doktorunuza danışın.