Belarus rushnyk


19

Zaten epeyce ulusal bayrak zorlukları var: AU CH FI FR GB GB IS KR NP ABD ... İşte böyle, biraz daha gelişmiş bir tane:

Beyaz Rusya'nın ulusal bayrağındaki dekoratif deseni kırmızı ve beyaz için iki ayrı değerin bir matrisi olarak döndürün veya yazdırın .

rushnyk

Diliniz matrisleri desteklemiyorsa, bir liste veya en yakın eşdeğerini kullanın. Her tarafta ekstra boşluk bırakılabilir. Matris aktarılabilir. Elemanlar tutarlı bir ayırıcıya sahip olabilir ve satırlar da olabilir, örneğin çıktı JSON olabilir. Süsleme deseninin 2012 sürümünü kullanmalısınız, 1951 veya 1995 sürümlerini kullanmamalısınız. Bu , bu yüzden dil başına en kısa cevap kazanır.

Örnek çıktı:

....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..#######.....#######..
.#########...#########.
#######################
####...#########...####
.#####..#######..#####.
..###....#####....###..
#..#....#######....#..#
.......####.####.......
#.....####...####.....#
##...####..#..####...##
###.####.......####.###
.######..#...#..######.
..####...##.##...####..
...###....###....###...
....##.#...#...#.##....
...###....###....###...
..####...##.##...####..
.######..#...#..######.
###.####.......####.###
##...####..#..####...##
#.....####...####.....#
.......####.####.......
#..#....#######....#..#
..###....#####....###..
.#####..#######..#####.
####...#########...####
#######################
.#########...#########.
..#######.....#######..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....

Yanıtlar:


7

Stax , 68 bayt

àÑΣ▒i╕7FF3xì¥╫Yb▌t╤y╡µåè0═↕h╗ΔDOü↔`◙■^>♀;∟Γ9→§Æ¼$ß⌡╫èj_┐;ø;¡²Ω☺┘4!P╛

Çalıştır ve hata ayıkla

Çıktılar dikey versiyon, 1beyaz, 0kırmızı. Saf yaklaşım: sol üst çeyreği sıkıştırın, ardından tamamlayın.


4

Piton 2 , 183 181 bayt

S=[bin(int(''.join(w),36))[2:].rjust(31,'0')for w in zip(*[iter("RBRG5FDLAJ2O77MSE012OBJWJUSWDQ464UKNYZIE8JYGS0JRFOCIJY7U5F983X0LYW20WNTE")]*6)]
for s in S[:0:-1]+S:print s[:0:-1]+s

Çevrimiçi deneyin!

Çıkışlar kullanarak versiyonunu aktarılmış 0ve 1beyaz ve kırmızı için.


Bu, bayrak için tüm değer dizesini sıkıştırır mı?
Raghu Ranganathan

@RaghuRanganathan Sadece dörtte biri. for s in S[:0:-1]+S:print s[:0:-1]+sHer satır katına hatları iki katına çıkar ve baskı
TFeld

3

JavaScript (ES6), 164 bayt

Transpoze çıktı. Kullanımları 0beyaz için, 1kırmızı için.

f=(x=y=0)=>y<61?x>22?`
`+f(!++y):(-~'o`xb[FMMf[MM[Fxbo`cCMMZZMMcCo`xb{F}N~~N}}{[wH{?]@NbfvB}H{Wwooa'.charCodeAt((y>30?60-y:y)*2+(X=x>11?22-x:x)/6)>>X%6&1)+f(x+1):''

Çevrimiçi deneyin! (önceden hazırlanmış çıktı)

Kullanma Tamponu () node.js içinde 1 bayt kaydeder.



3

Kömür, 93 89 81 bayt

”{“↷B⦃¶¹¹|TQ⌊‽÷⪫Mg+℅§ºH·τP≔⁻⊗|Yω¤⁵⊗-κ�κb5Aωγ⎚I0ê﹪oζM⟲ºh⟲⮌#⎇s▶‴ψ◧≔◨◧⁺4U×m∧üF↑⬤”‖O¬

İlk kömür cevabım! : D

Çevrimiçi deneyin!

Tasarımın dikey değil yatay olarak üretilmesiyle 4 bayt kaydedildi (daha az satırsonu).

8 bayt kazandığı için @Neil'e teşekkürler!


‖Bbirden fazla işlenen kabul eder, Bazı kombinasyonlar tek baytlık kodlamaya bile sahiptir ( ¬ve Lörneğin).
Neil

Ayrıca, .satır yerine boşluk kullanmanız, satır sonunda boşluklara ihtiyacınız olmadığından sizi birkaç bayt kurtarmalıdır.
Neil

(Dikey veya yatay olarak hangilerinin satırların ucunda daha fazla boşluğa neden olacağını bilmiyorum).
Neil

Denedim ‖B¬ve yansıyan dize değişmezi ekstra bir bayt maliyeti, ancak ‖BLsatır ters dize değişmez aynı bayt sayısı olduğundan bir bayt kaydeder çünkü yardımcı olmaz.
Neil

Öte yandan, dikey çıktı için, ‖BLbeni 83 bayta çıkarır ve ‖B¬81 baytta yapılabilir: Çevrimiçi deneyin!
Neil

2

Python 2, 153 bayt

00000000: 2363 6f64 696e 673a 4c31 0a66 6f72 2079  #coding:L1.for y
00000010: 2069 6e20 7261 6e67 6528 2d33 302c 3331   in range(-30,31
00000020: 293a 733d 666f 726d 6174 2869 6e74 2827  ):s=format(int('
00000030: 0137 ec80 937f f739 027d 7209 37e7 395c  .7.....9.}r.7.9\
00000040: 30cc ef73 108c 1fff fe41 b14e fb14 1bfe  0..s.....A.N....
00000050: d364 09ce f7ff fc81 18c6 c811 8cec 8111  .d..............
00000060: 272e 656e 636f 6465 2827 6865 7827 295b  '.encode('hex')[
00000070: 6162 7328 7929 3a3a 3331 5d2c 3136 292c  abs(y)::31],16),
00000080: 2730 3132 6227 293b 7072 696e 7420 732b  '012b');print s+
00000090: 735b 2d32 3a3a 2d31 5d                   s[-2::-1]

Çevrimiçi deneyin!


2

Perl 5 , 121 bayt

Kullanımları 1beyaz pikseller için ve 0kırmızı için.

$_=unpack"B*",'ñæÄxããÄvñí·Ž2IŽ=·ñæÀxàƒxoá|3†øÞ<òà';say for(@a=map{s/.$//r.reverse}/.{12}/g),pop@a&&reverse@a

Bu komut dosyası yazdırılamayan karakterler içeriyor, bu nedenle aşağıdaki doğrulama bağlantısına geri döndürülebilir bir hexdump eklendi.

Çevrimiçi deneyin!
Kod uzunluğunun doğrulanması .

açıklama

Desenin üst çeyreği ikili blob içinde saklanır. Bu sadece Perl'ün kullanır pack(değiştirdikten sonra orijinal ikili dize ile işlevini .ve #birlikte 1ve 0). Bu, her baytta 8 bitlik desen depolamamıza izin verir. Verileri paketinden çıkardıktan sonra, 12 uzunluğundaki bölümlere ayırdığımız, tersiyle (çoğaltılan orta karakter hariç) birleştirdiğimiz ve sonra (tersiyle birleştirilen) bölümler listesi üzerinde döngü yaptığımız uzun ikili dizeye sahibiz. çoğaltılan orta öğe hariç) ve tümünü kullanarak sayyeni bir satır ekleyen çıktı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.