ベラルーシ・ラシュニク


19

すでにいくつかの国旗チャレンジがあります: AU CH FI FR GB GB IS KR NP US ...ここに、もう少し高度なものがあります:

ベラルーシの国旗の装飾パターンを、赤と白の2つの異なる値のマトリックスとして返すか、印刷します。

ラシュニク

ご使用の言語が行列をサポートしていない場合は、リストのリストまたは最も近いものを使用してください。余分な空白はすべての側面で許可されます。行列は転置できます。要素には一貫した区切り文字を含めることができます。また、行、たとえば出力はJSONにすることができます。1951または1995バージョンではなく、2012バージョンのオーナメントパターンを使用する必要があります。これはなので、言語ごとの最短回答が勝ちます。

サンプル出力:

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

回答:



4

パイソン2183の 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て、転置バージョンを出力します。


これにより、フラグの値の文字列全体が圧縮されますか?
ラグーランガ

@RaghuRanganathan四分の一だけ。for s in S[:0:-1]+S:print s[:0:-1]+sラインの倍増、および各ラインを印刷するには倍増
TFeld



3

炭、93 89 81バイト

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

私の最初の炭の答え!:D

オンラインでお試しください!

デザインを垂直ではなく水平に出力することで4バイトを節約しました(改行を少なくしました)。

8バイトを節約してくれた@Neilに感謝します!


‖B複数のオペランドを受け入れ、いくつかの組み合わせであってもシングルバイトエンコーディング(有する¬L、例えば)。
ニール

また、.sの代わりにスペースを使用すると、行末にスペースが必要ないため、数バイト節約できます。
ニール

(垂直または水平のどちらが行末のスペースを増やすかはわかりません)。
ニール

試してみましたが‖B¬、文字列リテラルが反映されると余分なバイトが‖BL必要になるので助けにはなりませんが、行反転された文字列リテラルは同じバイト数であるため、バイトを節約できます。
ニール

一方、垂直出力の場合、‖BL83バイトになり‖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

このスクリプトには印刷できない文字が含まれているため、以下の検証リンクに可逆の16進ダンプが含まれています。

オンラインでお試しください!
コード長の検証

説明

パターンの上位4分の1は、バイナリBLOB内に保存されます。これpackは、元のバイナリ文字列でPerlの関数を使用します(.and #1andで置き換えた後0)。これにより、各バイトにパターンの8ビットを格納できます。データを展開すると、長さ12のセクションに分割された長いバイナリ文字列が得られ、逆に連結され(複製された中間文字を除く)、次にセクションのリストをループします(逆に連結されます)重複する中間要素を除くリストの)を使用sayし、改行を追加するを使用してすべて出力します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.