Belarus rushnyk


19

Abbiamo già avuto alcune sfide con la bandiera nazionale: AU CH FI FR GB GB IS KR NP US ... Eccone un'altra, un po 'più avanzata:

Restituisci o stampa il motivo decorativo della bandiera nazionale bielorussa come matrice di due valori distinti per rosso e bianco.

rushnyk

Se la tua lingua non supporta le matrici, utilizza un elenco di elenchi o l'equivalente più vicino. Spazi bianchi extra sono ammessi su tutti i lati. La matrice può essere trasposta. Gli elementi possono avere un separatore coerente, così come le righe, ad esempio l'output può essere JSON. È necessario utilizzare la versione 2012 del motivo ornamentale, non le versioni del 1951 o del 1995. Questo è , quindi vince la risposta più breve per lingua.

Uscita campione:

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

Risposte:


7

Stax , 68 byte

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

Esegui ed esegui il debug

Esegue la versione verticale, 1per il bianco, 0per il rosso. Approccio ingenuo: comprimere il quarto in alto a sinistra, quindi completare.


4

Python 2 , 183 181 byte

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

Provalo online!

Emette la versione trasposta, usando 0e 1per bianco e rosso.


Questo comprime l'intera stringa di valori per il flag?
— Raghu Ranganathan,

@RaghuRanganathan Solo un quarto. La for s in S[:0:-1]+S:print s[:0:-1]+sraddoppia le linee, e stampare ogni linea raddoppiata
— TFeld

3

JavaScript (ES6), 164 byte

Uscita trasposta. Utilizza 0per il bianco, 1per il rosso.

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):''

Provalo online! (uscita preimpostata)

L'uso di Buffer () in Node.js consente di risparmiare 1 byte.



3

Carbone, 93 89 81 byte

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

La mia prima risposta al carbone! : D

Provalo online!

Hai salvato 4 byte emettendo il disegno in orizzontale anziché in verticale (meno nuove righe).

Grazie a @Neil per aver salvato 8 byte!


‖Baccetta più operandi, alcune combinazioni hanno persino una codifica a byte singolo ( ¬e Lper esempio).
— Neil,

Inoltre, l'uso di spazi al posto di .s dovrebbe farti risparmiare qualche byte poiché non hai bisogno di spazi alla fine di una riga.
— Neil,

(Non so quale di verticalmente o orizzontalmente comporterà più spazi alle estremità delle linee).
— Neil,

Ho provato ‖B¬e non aiuta perché la stringa riflessa letterale costa un byte extra, ma ‖BLsalva un byte perché la stringa letterale invertita di riga ha lo stesso conteggio byte.
— Neil,

D'altra parte, per l'output verticale, ‖BLmi porta a 83 byte e ‖B¬può essere fatto in 81 byte: provalo online!
— Neil,

2

Python 2, 153 byte

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]

Provalo online!


2

Perl 5 , 121 byte

Utilizza 1per i pixel bianchi e 0per il rosso.

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

Questo script contiene caratteri non stampabili, quindi un hexdump reversibile è incluso nel collegamento di verifica di seguito.

Provalo online!
Verifica della lunghezza del codice .

Spiegazione

Il quarto superiore del modello viene archiviato nel BLOB binario. Questo utilizza solo la packfunzione di Perl con la stringa binaria originale (dopo la sostituzione .e #con 1e 0). Questo ci consente di memorizzare 8 bit del pattern in ciascun byte. Una volta decompressi i dati, abbiamo la lunga stringa binaria, che suddividiamo in sezioni di lunghezza 12, concateniamo con il contrario (tranne per il carattere intermedio duplicato) e quindi ripetiamo l'elenco delle sezioni (concatenate con il contrario dell'elenco, ad eccezione dell'elemento centrale duplicato) e li emette tutti usando say, il che aggiunge una nuova riga.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.