เบลารุส rushnyk


19

เรามีความท้าทายในการตั้งค่าสถานะธงอยู่เล็กน้อย: AU CH FI FR GB GB คือ KR NP US ... นี่คืออีกระดับหนึ่งที่ค่อนข้างสูงกว่า:

ส่งคืนหรือพิมพ์ลวดลายตกแต่งจากธงประจำชาติของเบลารุสเป็นเมทริกซ์ของค่าสองค่าที่แตกต่างกันสำหรับสีแดงและสีขาว

rushnyk

หากภาษาของคุณไม่รองรับเมทริกซ์ให้ใช้ลิสต์ของรายการหรือรายการที่ใกล้เคียงที่สุด ช่องว่างพิเศษได้รับอนุญาตในทุกด้าน เมทริกซ์สามารถย้ายได้ องค์ประกอบสามารถมีตัวคั่นที่สอดคล้องกันและแถวสามารถเช่นเอาท์พุทสามารถเป็น JSON คุณต้องใช้รูปแบบการประดับรุ่น 2012 ไม่ใช่รุ่น 1951 หรือ 1995 นี่คือดังนั้นคำตอบที่สั้นที่สุดต่อภาษาชนะ

ตัวอย่างผลลัพธ์:

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

คำตอบ:


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

ลองออนไลน์!

เอาท์พุทรุ่น transposed ใช้0และ1สำหรับสีขาวและสีแดง


สิ่งนี้บีบอัดสตริงทั้งหมดของค่าสำหรับแฟล็กหรือไม่?
Raghu Ranganathan

@ RaghuRanganathan เพียงหนึ่งในสี่ for s in S[:0:-1]+S:print s[:0:-1]+sคู่สายและพิมพ์แต่ละบรรทัดสองเท่า
TFeld

3

JavaScript (ES6), 164 ไบต์

เอาท์พุท transposed ใช้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):''

ลองออนไลน์! (เอาต์พุตที่กำหนดล่วงหน้า)

การใช้Buffer ()ใน Node.jsบันทึกได้ 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ตัวอย่าง)
Neil

นอกจากนี้การใช้ช่องว่างแทน.s ควรช่วยคุณสองสามไบต์เนื่องจากคุณไม่ต้องการช่องว่างที่ท้ายบรรทัด
Neil

(ฉันไม่ทราบว่าช่องใดในแนวตั้งหรือแนวนอนจะส่งผลให้มีช่องว่างมากขึ้นในตอนท้ายของบรรทัด)
Neil

ฉันพยายาม‖B¬แล้วและมันก็ไม่ได้ผลเพราะสตริงตัวอักษรที่สะท้อนนั้นมีค่าเป็นไบต์พิเศษ แต่‖BLจะบันทึกไบต์เพราะสตริงตัวอักษรที่กลับบรรทัดนั้นนับเป็นจำนวนไบต์เดียวกัน
Neil

ในทางกลับกันสำหรับเอาท์พุทแนวตั้งให้‖BLฉันถึง 83 ไบต์และ‖B¬สามารถทำได้ใน 81 ไบต์: ลองออนไลน์!
Neil

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

สคริปต์นี้มีอักขระที่ไม่สามารถพิมพ์ได้ดังนั้นจึงมี hexdump แบบย้อนกลับได้ในลิงก์การตรวจสอบด้านล่าง

ลองออนไลน์! การตรวจสอบความยาวของรหัส

คำอธิบาย

ไตรมาสบนสุดของรูปแบบจะถูกเก็บไว้ภายในไบนารีหยด สิ่งนี้ใช้packฟังก์ชันของ Perl กับสตริงไบนารีดั้งเดิม (หลังจากแทนที่.และ#ด้วย1และ0) สิ่งนี้ทำให้เราสามารถเก็บรูปแบบ 8 บิตในแต่ละไบต์ เมื่อเราคลายข้อมูลออกแล้วเราจะมีสตริงไบนารียาวซึ่งเราแบ่งออกเป็นส่วนของความยาว 12 ต่อกันกับส่วนย้อนกลับ (ยกเว้นอักขระกลางซ้ำซ้อน) จากนั้นวนรอบรายการส่วน (เชื่อมโยงกับส่วนตรงกันข้าม ของรายการยกเว้นองค์ประกอบกลางที่ซ้ำกัน) และส่งออกพวกเขาทั้งหมดโดยใช้sayซึ่งเพิ่มในบรรทัดใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.