Belarus rushnyk

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
18
down vote

favorite
1












We've got quite a few national flag challenges already:
AU
CH
FI
FR
GB
GB
IS
KR
NP
US...
Here's another, somewhat more advanced one:



Return or print the decorative pattern from Belarus's national flag as a matrix of two distinct values for red and white.



rushnyk



If your language doesn't support matrices, use a list of lists or the closest equivalent.
Extra whitespace is allowed on all sides.
The matrix can be transposed.
The elements can have a consistent separator, and so can the rows, e.g. output can be JSON.
You must use the 2012 version of the ornament pattern, not the 1951 or 1995 versions.
This is code-golf, so the shortest answer per language wins.



Sample output:



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






share|improve this question























    up vote
    18
    down vote

    favorite
    1












    We've got quite a few national flag challenges already:
    AU
    CH
    FI
    FR
    GB
    GB
    IS
    KR
    NP
    US...
    Here's another, somewhat more advanced one:



    Return or print the decorative pattern from Belarus's national flag as a matrix of two distinct values for red and white.



    rushnyk



    If your language doesn't support matrices, use a list of lists or the closest equivalent.
    Extra whitespace is allowed on all sides.
    The matrix can be transposed.
    The elements can have a consistent separator, and so can the rows, e.g. output can be JSON.
    You must use the 2012 version of the ornament pattern, not the 1951 or 1995 versions.
    This is code-golf, so the shortest answer per language wins.



    Sample output:



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






    share|improve this question





















      up vote
      18
      down vote

      favorite
      1









      up vote
      18
      down vote

      favorite
      1






      1





      We've got quite a few national flag challenges already:
      AU
      CH
      FI
      FR
      GB
      GB
      IS
      KR
      NP
      US...
      Here's another, somewhat more advanced one:



      Return or print the decorative pattern from Belarus's national flag as a matrix of two distinct values for red and white.



      rushnyk



      If your language doesn't support matrices, use a list of lists or the closest equivalent.
      Extra whitespace is allowed on all sides.
      The matrix can be transposed.
      The elements can have a consistent separator, and so can the rows, e.g. output can be JSON.
      You must use the 2012 version of the ornament pattern, not the 1951 or 1995 versions.
      This is code-golf, so the shortest answer per language wins.



      Sample output:



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






      share|improve this question











      We've got quite a few national flag challenges already:
      AU
      CH
      FI
      FR
      GB
      GB
      IS
      KR
      NP
      US...
      Here's another, somewhat more advanced one:



      Return or print the decorative pattern from Belarus's national flag as a matrix of two distinct values for red and white.



      rushnyk



      If your language doesn't support matrices, use a list of lists or the closest equivalent.
      Extra whitespace is allowed on all sides.
      The matrix can be transposed.
      The elements can have a consistent separator, and so can the rows, e.g. output can be JSON.
      You must use the 2012 version of the ornament pattern, not the 1951 or 1995 versions.
      This is code-golf, so the shortest answer per language wins.



      Sample output:



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








      share|improve this question










      share|improve this question




      share|improve this question









      asked yesterday









      ngn

      6,49812154




      6,49812154




















          7 Answers
          7






          active

          oldest

          votes

















          up vote
          7
          down vote














          Stax, 68 bytes



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


          Run and debug it



          Outputs vertical version, 1 for white, 0 for red. Naive approach: compress top left quarter, then complete.






          share|improve this answer




























            up vote
            4
            down vote














            Python 2, 183 181 bytes





            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


            Try it online!



            Outputs transposed version, using 0 and 1 for white and red.






            share|improve this answer






























              up vote
              3
              down vote













              JavaScript (ES6), 164 bytes



              Transposed output. Uses 0 for white, 1 for red.





              f=(x=y=0)=>y<61?x>22?`
              `+f(!++y):(-~'o`xb[FMMf[MM[Fxbo`cCMMZZMMcCo`xbFN~~N}}{[wH?]@NbfvBHWwooa'.charCodeAt((y>30?60-y:y)*2+(X=x>11?22-x:x)/6)>>X%6&1)+f(x+1):''


              Try it online! (prettified output)



              Using Buffer() in Node.js saves 1 byte.






              share[wH?]@NbfvBHimprove this answer






















                share[wH?]@NbfvBHimprove this answer















                JavaScript (ES6), 164 bytes



                Transposed output. Uses 0 for white, 1 for red.





                f=(x=y=0)=>y<61?x>22?`
                `+f(!++y):(-~'o`xb[FMMf[MM[Fxbo`cCMMZZMMcCo`xbFN~~N{[wH?]@NbfvBH{Wwooa'.charCodeAt((y>30?60-y:y)*2+(X=x>11?22-x:x)/6)>>X%6&1)+f(x+1):''


                Try it online! (prettified output)



                Using Buffer() in Node.js saves 1 byte.







                share|improve this answer















                share|improve this answer



                share|improve this answer








                edited yesterday


























                answered yesterday









                Arnauld

                60.4k472253




                60.4k472253




















                    up vote
                    3
                    down vote














                    SOGL V0.12, 61 56 bytes



                     №α⁶U-┼°jōIΤ$ΣΧρ←FVξÆ⅝{VqM┼οYΠ!↕οΩÆ.χg±└¶Σ,Cy′┌“2─±6«n╬,


                    Try it Here!






                    share|improve this answer



























                      up vote
                      3
                      down vote














                      SOGL V0.12, 61 56 bytes



                       №α⁶U-┼°jōIΤ$ΣΧρ←FVξÆ⅝{VqM┼οYΠ!↕οΩÆ.χg±└¶Σ,Cy′┌“2─±6«n╬,


                      Try it Here!






                      share|improve this answer

























                        up vote
                        3
                        down vote










                        up vote
                        3
                        down vote










                        SOGL V0.12, 61 56 bytes



                         №α⁶U-┼°jōIΤ$ΣΧρ←FVξÆ⅝{VqM┼οYΠ!↕οΩÆ.χg±└¶Σ,Cy′┌“2─±6«n╬,


                        Try it Here!






                        share|improve this answer
















                        SOGL V0.12, 61 56 bytes



                         №α⁶U-┼°jōIΤ$ΣΧρ←FVξÆ⅝{VqM┼οYΠ!↕οΩÆ.χg±└¶Σ,Cy′┌“2─±6«n╬,


                        Try it Here!







                        share|improve this answer















                        share|improve this answer



                        share|improve this answer








                        edited yesterday


























                        answered yesterday









                        dzaima

                        12.2k11450




                        12.2k11450




















                            up vote
                            3
                            down vote













                            Charcoal, 93 89 81 bytes



                            ” 
                            show 1 more comment









                            up vote
                            3
                            down vote













                            Charcoal, 93 89 81 bytes



                            ” 
                            show 1 more comment







                            up vote
                            3
                            down vote










                            up vote
                            3
                            down vote









                            Charcoal, 93 89 81 bytes



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


                            My first charcoal answer! :D



                            Try it online!



                            Saved 4 bytes by outputting the design horizontally rather than vertically (fewer newlines).



                            Thanks to @Neil for saving 8 bytes!






                            sharer.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]


                            Try it online!






                            sharer.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]


                            Try it online!






                            sharer.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]


                            Try it online!







                            share|improve this answer













                            share|improve this answer



                            share|improve this answer











                            answered yesterday









                            Lynn

                            47.7k693221




                            47.7k693221




















                                up vote
                                2
                                down vote














                                Perl 5, 121 bytes



                                Uses 1 for white pixels and 0 for red.





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


                                This script contains unprintable characters so a reversible hexdump is included in the verification link below.



                                Try it online!
                                Verification of code length.



                                Explanation



                                The top quarter of the pattern is stored within the binary blob. This just uses Perl's pack function with the original binary string (after replacing . and # with 1 and 0). This allows us to store 8 bits of the pattern in each byte. Once we've unpacked the data, we have the long binary string, which we break down into sections of length 12, concatenate with the reverse (except for the duplicated middle character) and then loop over the list of sections (concatenated with the reverse of the list, except for the duplicated middle element) and output them all using say, which adds in a newline.






                                share|improve this answer

























                                  up vote
                                  2
                                  down vote














                                  Perl 5, 121 bytes



                                  Uses 1 for white pixels and 0 for red.





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


                                  This script contains unprintable characters so a reversible hexdump is included in the verification link below.



                                  Try it online!
                                  Verification of code length.



                                  Explanation



                                  The top quarter of the pattern is stored within the binary blob. This just uses Perl's pack function with the original binary string (after replacing . and # with 1 and 0). This allows us to store 8 bits of the pattern in each byte. Once we've unpacked the data, we have the long binary string, which we break down into sections of length 12, concatenate with the reverse (except for the duplicated middle character) and then loop over the list of sections (concatenated with the reverse of the list, except for the duplicated middle element) and output them all using say, which adds in a newline.






                                  share|improve this answer























                                    up vote
                                    2
                                    down vote










                                    up vote
                                    2
                                    down vote










                                    Perl 5, 121 bytes



                                    Uses 1 for white pixels and 0 for red.





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


                                    This script contains unprintable characters so a reversible hexdump is included in the verification link below.



                                    Try it online!
                                    Verification of code length.



                                    Explanation



                                    The top quarter of the pattern is stored within the binary blob. This just uses Perl's pack function with the original binary string (after replacing . and # with 1 and 0). This allows us to store 8 bits of the pattern in each byte. Once we've unpacked the data, we have the long binary string, which we break down into sections of length 12, concatenate with the reverse (except for the duplicated middle character) and then loop over the list of sections (concatenated with the reverse of the list, except for the duplicated middle element) and output them all using say, which adds in a newline.






                                    share|improve this answer














                                    Perl 5, 121 bytes



                                    Uses 1 for white pixels and 0 for red.





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


                                    This script contains unprintable characters so a reversible hexdump is included in the verification link below.



                                    Try it online!
                                    Verification of code length.



                                    Explanation



                                    The top quarter of the pattern is stored within the binary blob. This just uses Perl's pack function with the original binary string (after replacing . and # with 1 and 0). This allows us to store 8 bits of the pattern in each byte. Once we've unpacked the data, we have the long binary string, which we break down into sections of length 12, concatenate with the reverse (except for the duplicated middle character) and then loop over the list of sections (concatenated with the reverse of the list, except for the duplicated middle element) and output them all using say, which adds in a newline.







                                    share|improve this answer













                                    share|improve this answer



                                    share|improve this answer











                                    answered 16 hours ago









                                    Dom Hastings

                                    14.7k33070




                                    14.7k33070






















                                         

                                        draft saved


                                        draft discarded


























                                         


                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function ()
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f170053%2fbelarus-rushnyk%23new-answer', 'question_page');

                                        );

                                        Post as a guest













































































                                        Popular posts from this blog

                                        Chat program with C++ and SFML

                                        Function to Return a JSON Like Objects Using VBA Collections and Arrays

                                        Will my employers contract hold up in court?