Boş bölümler için aynı büyüklükteki boşluk bloklarını kullanarak bir Sierpinski halıya yerleştirildiğinde , halının yineleme sayısını veren bir program oluşturan dikdörtgen bir metin bloğu yazın .
Örneğin, eğer metin bloğunuz
TXT
BLK
sonra programı çalıştırıyor
TXTTXTTXT
BLKBLKBLK
TXT TXT
BLK BLK
TXTTXTTXT
BLKBLKBLK
1
Programın şekli Sierpinski halının ilk yinelemesini temsil ettiği için çıktı vermelidir .
Benzer şekilde, koşu
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
TXT TXTTXT TXTTXT TXT
BLK BLKBLK BLKBLK BLK
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
TXTTXTTXT TXTTXTTXT
BLKBLKBLK BLKBLKBLK
TXT TXT TXT TXT
BLK BLK BLK BLK
TXTTXTTXT TXTTXTTXT
BLKBLKBLK BLKBLKBLK
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
TXT TXTTXT TXTTXT TXT
BLK BLKBLK BLKBLK BLK
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
2 çıkış vermeli, çünkü bu ikinci Sierpinski halı yinelemesinin şeklidir.
Metin bloğunu olduğu gibi çalıştırma
TXT
BLK
çıkmalıdır 0
çünkü sıfırıncı yineleme sayılabilir.
Bu, tüm tekrarlamalar için çalışmalıdır. (En azından teorik olarak, bilgisayarın hafızasına ve hepsine sahip olduğunu varsayarak.)
ayrıntılar
- Programlar kaynak kodlarıyla ilgili bilgileri okuyamayabilir veya erişemez. Buna sıkı bir sorgulama gibi davranın.
- Çıktı stdout'a veya benzer bir alternatife gider. Yalnızca sayıyı ve isteğe bağlı izleyen bir yeni satırı girin. Giriş yok.
- Metin bloğu, satır sonlandırıcı olarak kabul edilmeyen karakterleri içerebilir . Metin bloğu boşluk içerebilir.
- Halıdaki "boş alan" tamamen boşluk karakterlerinden oluşmalıdır .
- İsteğe bağlı olarak tüm programların sonunda yeni bir satır sonu olduğunu varsayabilirsiniz.
Herhangi bir yinelemede belirli bir metin bloğu için bir halı oluşturmak için bu yığın pasajını kullanabilirsiniz:
<style>#o,#i{font-family:monospace;}</style><script>function c(e){e=e.split("\n");for(var n=new Array(3*e.length),t=0;t<n.length;t++){var l=t%e.length;n[t]=e[l]+(t>=e.length&&t<2*e.length?e[l].replace(/./g," "):e[l])+e[l]}return n.join("\n")}function f(){for(i=document.getElementById("i").value,n=parseInt(document.getElementById("n").value);n>0;)i=c(i),n--;document.getElementById("o").value=i}</script><textarea id='i'placeholder='code block...'rows='8'cols='32'></textarea><br>Iterations <input id='n'type='text' value='1'><br><br><button type='button'onclick='f()'>Generate</button><br><br><textarea id='o'placeholder='output...'rows='8'cols='32'style='background-color:#eee'readonly></textarea>
puanlama
İlk metin bloğu alana göre en küçük olan gönderim (genişlik kez yükseklik) kazanır. TXT\nBLK
Örnek 6 bir puan için 2 ile 3, (Temel olarak kısa kod kazanır, böylece kod golf etiketi.)
Tiebreaker, metin bloklarında en az belirgin karakteri kullanan gönderime gider. Hala bağlıysa, ilk kazanılanları cevapla.