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.