Rushnyk


19

Chúng tôi đã có khá nhiều thử thách cờ quốc gia: AU CH FI FR GB GB IS KR NP US ... Đây là một thử thách khác, có phần nâng cao hơn:

Trả lại hoặc in mẫu trang trí từ quốc kỳ của Belarus dưới dạng ma trận gồm hai giá trị riêng biệt cho màu đỏ và trắng.

vội vàng

Nếu ngôn ngữ của bạn không hỗ trợ ma trận, hãy sử dụng danh sách danh sách hoặc tương đương gần nhất. Khoảng trắng thêm được phép ở tất cả các phía. Ma trận có thể được hoán vị. Các phần tử có thể có một dấu phân cách nhất quán và các hàng cũng vậy, ví dụ đầu ra có thể là JSON. Bạn phải sử dụng phiên bản 2012 của mẫu trang trí, không phải phiên bản 1951 hoặc 1995. Đây là , vì vậy câu trả lời ngắn nhất cho mỗi ngôn ngữ sẽ thắng.

Đầu ra mẫu:

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

Câu trả lời:


7

Stax , 68 byte

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

Chạy và gỡ lỗi nó

Đầu ra phiên bản dọc, 1cho màu trắng, 0cho màu đỏ. Cách tiếp cận ngây thơ: nén quý trên cùng bên trái, sau đó hoàn thành.


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

Hãy thử trực tuyến!

Đầu ra phiên bản chuyển đổi, sử dụng 01cho màu trắng và đỏ.


Điều này có nén toàn bộ chuỗi giá trị cho cờ không?
Raghu Ranganathan

@RaghuRanganathan Chỉ một phần tư. Nhân for s in S[:0:-1]+S:print s[:0:-1]+sđôi số dòng và in mỗi dòng tăng gấp đôi
TFeld

3

JavaScript (ES6), 164 byte

Đầu ra chuyển đổi. Sử dụng 0cho màu trắng, 1cho màu đỏ.

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

Hãy thử trực tuyến! (đầu ra được chỉnh sửa)

Sử dụng Bộ đệm () trong Node.js giúp tiết kiệm 1 byte.



3

Than, 93 89 81 byte

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

Câu trả lời than đầu tiên của tôi! : D

Hãy thử trực tuyến!

Đã lưu 4 byte bằng cách xuất thiết kế theo chiều ngang thay vì theo chiều dọc (ít dòng mới hơn).

Cảm ơn @Neil vì đã tiết kiệm 8 byte!


‖Bchấp nhận nhiều toán hạng, Một số kết hợp thậm chí có mã hóa một byte ( ¬Lví dụ).
Neil

Ngoài ra, sử dụng khoảng trắng thay vì .s sẽ giúp bạn tiết kiệm một vài byte vì bạn không cần khoảng trắng ở cuối dòng.
Neil

(Tôi không biết cái nào theo chiều dọc hoặc chiều ngang sẽ dẫn đến nhiều khoảng trống ở cuối dòng).
Neil

Tôi đã thử ‖B¬và nó không giúp ích gì vì chuỗi ký tự được phản ánh tốn thêm một byte, nhưng ‖BLkhông lưu một byte vì chuỗi ký tự đảo ngược dòng là cùng một số byte.
Neil

Mặt khác, đối với đầu ra dọc, đưa ‖BLtôi tới 83 byte và ‖B¬có thể được thực hiện trong 81 byte: Hãy thử trực tuyến!
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]

Hãy thử trực tuyến!


2

Perl 5 , 121 byte

Sử dụng 1cho các pixel trắng và 0đỏ.

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

Tập lệnh này chứa các ký tự không thể in được để hexdump có thể đảo ngược được bao gồm trong liên kết xác minh bên dưới.

Hãy thử trực tuyến!
Xác minh độ dài mã .

Giải trình

Phần tư trên cùng của mẫu được lưu trữ trong blob nhị phân. Điều này chỉ sử dụng packchức năng của Perl với chuỗi nhị phân ban đầu (sau khi thay thế .#bằng 10). Điều này cho phép chúng ta lưu trữ 8 bit của mẫu trong mỗi byte. Khi chúng tôi đã giải nén dữ liệu, chúng tôi có chuỗi nhị phân dài, chúng tôi chia thành các phần có độ dài 12, nối với ngược lại (ngoại trừ ký tự giữa trùng lặp) và sau đó lặp qua danh sách các phần (được nối với ngược lại của danh sách, ngoại trừ phần tử ở giữa trùng lặp) và xuất ra tất cả chúng bằng cách sử dụng say, thêm vào một dòng mới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.