Aynı zamanda bir Gosper eğrisi olarak da bilinen bir Akış Yılanı, basit bir işlemin her bir sıralaması / yinelemesiyle katlanarak büyüyen fraktal bir eğridir. Aşağıda inşaat ile ilgili detaylar ve çeşitli siparişler için birkaç örnek verilmiştir:
Sipariş 1 Flow Snake :
____
\__ \
__/
Sipariş 2 Akış Yılanı :
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \
/ __ \__ \ \/
\ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
Sipariş 3 Akış Yılan :
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \ ____
/ __ \__ \ \/ / __ \__ \
____ \ \ \__/ / __ \/ / __/ / __
____ \__ \ \/ ____ \/ / __/ / __ \ \ \
\__ \__/ / __ \__ \__/ / __ \ \ \ \/
__/ ____ \ \ \__/ ____ \ \ \ \/ / __
/ __ \__ \ \/ ____ \__ \ \/ / __ \/ /
\ \ \__/ / __ \__ \__/ / __ \ \ \__/
\/ ____ \/ / __/ ____ \ \ \ \/ ____
\__ \__/ / __ \__ \ \/ / __ \__ \
__/ ____ \ \ \__/ / __ \/ / __/ / __
/ __ \__ \ \/ ____ \/ / __/ / __ \/ /
\/ / __/ / __ \__ \__/ / __ \/ / __/
__/ / __ \ \ \__/ ____ \ \ \__/ / __
/ __ \ \ \ \/ ____ \__ \ \/ ____ \/ /
\ \ \ \/ / __ \__ \__/ / __ \__ \__/
\/ / __ \/ / __/ ____ \ \ \__/
\ \ \__/ / __ \__ \ \/
\/ \ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
İnşaat
7 kenar ve 8 köşe içeren bir yoldan oluşturulacak 1 Flow Snake sırasını düşünün (aşağıda etiketlenmiştir. Fizibilite için büyütülmüş):
4____5____6
\ \
3\____2 7\
/
0____1/
Şimdi sıradaki her bir sipariş için, kenarları basitçe bu orijinal sipariş 1 modelinin döndürülmüş bir versiyonuyla değiştirin. Kenarları değiştirmek için aşağıdaki 3 kuralı kullanın:
1 Yatay bir kenar için, orijinal şekliyle aynı şekilde değiştirin:
________
\ \
\____ \
/
____/
2 Bir /
kenar için ( 12
yukarıdaki yapıda), aşağıdaki döndürülmüş versiyonla değiştirin:
/
/ ____
\ / /
\/ /
/
____/
3 Bir \
kenar için ( 34
ve 67
üstü), aşağıdaki döndürülmüş versiyonla değiştirin:
/
/ ____
\ \ \
\ \ \
\ /
\/
Örneğin, etiketli sipariş 1'den gelen köşeleri olan 2. sipariş,
________
\ \
________ \____ \6
\ \ / /
\____ \5___/ / ____
/ \ \ \
4___/ ________ \ \ \7
/ \ \ \ /
/ ____ \____ \2 \/
\ \ \ / /
\ \ \3___/ / ____
\ / \ / /
\/ ________ \/ /
\ \ /
\____ \1___/
/
0___/
Şimdi herhangi bir daha yüksek sipariş için, geçerli seviyeyi 1 /
, 1 \
veya 2 uzunluklarının kenarlarına bölün _
ve işlemi tekrarlayın. Değiştirdikten sonra bile, arka arkaya iki kenar arasındaki ortak köşelerin hala çakıştığını unutmayın.
Meydan okuma
N
STDIN / ARGV / function argümanı veya en yakın eşdeğeri ile tek bir tamsayı alan tam bir programın bir fonksiyonunu yazmanız ve STDOUT'dakiN
Flow Snake sırasını yazdırmanız gerekir .- Giriş tamsayı her zaman olduğundan büyük
0
. - Desenin bir parçası olmayan ön boşluklar olmamalıdır.
- Minimum sınırlayıcı dikdörtgeni tamamen doldurmak için deseni doldurmak için hiçbir iz boşluğu veya yeterli iz boşluğu olmamalıdır.
- İzleyen yeni satır isteğe bağlıdır.
Eğlenceli gerçekler
- Akış Yılanları, bu düzen 2. ve daha üst sıralara benzeyen Kar Tanelerinin kelime oyunu.
- Akış ve Yılanlar, kalıp boyunca akan tek bir yoldan oluştuğu için kalıpta bir rol oynar.
- Dikkatli bir şekilde fark ederseniz, 2. sıradaki (ve aynı zamanda daha yüksek) model, geçerli ve önceki kenarın ortak tepe noktasında döndürülen 1. sıradaki dönüşlerden oluşur.
- Burada ve diğer birçok yerde bulunabilen ASCII Olmayan bir Akış Yılanı çeşidi vardır .
Bu kod golf , bayt cinsinden en kısa kod kazanır!
Liderler Sıralaması
Serinin ilk yazı lider tablosu oluşturur.
Yanıtlarınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak her bir başlığa başlıkla başlayın:
# Language Name, N bytes
Gönderinizin N
büyüklüğü nerede ? Puanınızı artırmak varsa, olabilir onları içinden vurarak, başlığa eski hesapları tutmak. Örneğin:
# Ruby, <s>104</s> <s>101</s> 96 bytes