白俄罗斯rushnyk


19

我们已经遇到了许多国旗挑战:AU CH FI FR GB GB IS KR NP US ...这是另一个更先进的挑战 :

返回或打印白俄罗斯国旗上装饰图案,作为红色和白色两个不同值的矩阵。

拉什尼克

如果您的语言不支持矩阵,请使用列表列表或最接近的列表。所有面都允许有多余的空格。矩阵可以转置。元素可以具有一致的分隔符,行也可以具有分隔符,例如输出可以是JSON。您必须使用2012版本的装饰图案,而不是1951或1995版本。这是,因此每种语言的答案最短。

样本输出:

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

Answers:


7

Stax,68 个字节

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

运行并调试

输出垂直版本,1白色,0红色。天真的方法:压缩左上角的四分之一,然后完成。


4

Python 2中183个 181字节

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

在线尝试!

输出换位版本,使用01代表白色和红色。


这会压缩标志的整个值字符串吗?
Raghu Ranganathan

@RaghuRanganathan只有四分之一。将for s in S[:0:-1]+S:print s[:0:-1]+s行加倍,并打印每行加倍
TFeld 18'Aug

3

JavaScript(ES6),164个字节

转置输出。用途0为白色,1红色。

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

在线尝试!(预定输出)

在Node.js中使用Buffer()可以节省1个字节。



3

木炭,93 89 81字节

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

我的第一个木炭答案!:D

在线尝试!

通过水平而不是垂直输出设计(较少换行符)节省了4个字节。

感谢@Neil节省了8个字节!


‖B接受多个操作数,一些组合甚至有一个单字节编码(¬L例如)。
尼尔,

另外,使用空格代替.s应该可以节省一些字节,因为在行尾不需要空格。
尼尔

(我不知道垂直或水平哪个会在行尾产生更多空间)。
尼尔,

我尝试了一下‖B¬,但是这样做没有帮助,因为反射的字符串文字要多花一个字节,但是却‖BL确实节省了一个字节,因为行反转的字符串文字是相同的字节数。
尼尔

另一方面,对于垂直输出,‖BL我可以达到83个字节,并且‖B¬可以以81个字节完成:在线尝试!
尼尔,

2

Python 2,153个字节

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]

在线尝试!


2

Perl 5,121个字节

用途1为白色像素和0红色。

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

该脚本包含不可打印的字符,因此下面的验证链接中包含可逆的十六进制转储。

在线尝试!
验证码长

说明

模式的前四分之一存储在二进制Blob中。这只是使用Perl的pack功能与原来的二进制字符串(更换后.,并#10)。这使我们可以在每个字节中存储模式的8位。解压缩数据后,我们得到了长长的二进制字符串,我们将其细分为长度为12的部分,并与反向连接(重复的中间字符除外),然后遍历部分列表(与反向连接) (除了重复的中间元素),然后使用进行输出say,并在其中添加换行符。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.