오늘 (9 월 24 일)은 혼다 생일입니다.


10

오늘 (9 월 24 일)은 HONDA 사의 생일입니다. 원래 그들의 회사 이름은

本田技研工業株式会社

혼다를위한 선물을 요청하고 싶습니다. 과제는 프로그램을 회사 명으로 인쇄하는 것입니다. 원하는 방식으로 수행 할 수 있지만 규칙은 하나 뿐이며 유니 코드는 허용되지 않습니다. ASCII 아트 여야합니다.

코드 및 출력을 게시하도록 요청하고 싶습니다. 항상 승자를 결정하기 위해 코드 길이를 살펴볼 것이지만이 경우 세로도 중요합니다.

편집 : 출력은 다음과 유사해야합니다.本田技研工業株式会社


자, 우리가 'HONDA'그것을 사용 하고 주장하는 것을 방해하는 것은 GolfScript에서 회사 이름을 인쇄합니까? (난 단지 허점을 지적하려고합니다). 또한 이것은 code-golf 로 태그되어야 합니까?
변동성

@Volatility 나는 당신의 의견 후 편집했다.
ST3

Unicode is not allowed어디? 출력에서 (합리적으로 들리는가?) 스크립트로? 스크립트의 내부 표현으로?
Johannes Kuhn

@JohannesKuhn 인쇄 된 문자 중 UNICODE가 될 수 없다는 것을 의미했습니다. 스크립트에서는 사용할 수 있지만 출력은 ASCII 테이블 문자에 있어야합니다.
ST3

2
사양이 너무 모호하여 프로그램이 프로그램을 충족하는지 여부를 객관적으로 결정할 수 없습니다.
피터 테일러

답변:


20

매스 매 티카

여기서 캐릭터는 개별적으로 래스터 화됩니다. 축소 된 이미지의 이진 이미지 데이터의 0은 별표로 대체되고 배열 자체가 인쇄됩니다.

GraphicsGrid[ImageData@ImageResize[Binarize@Rasterize@Style[#, 136], 30] 
/. {1 -> "", 0 -> "*"}] & /@ Characters["本田技研工業株式会社"]

혼다

모든 문자 아래에서 단일 이미지로 래스터 화되었습니다. 이 경우 별표는 별표로 인식하기가 조금 더 어렵습니다.

GraphicsGrid[ImageData@ImageResize[Binarize@Rasterize@Style[#, 136], 300] 
/. {1 -> "",  0 -> "*"}, ImageSize -> 1500] &["本田技研工業株式会社"]

이미지 2


매우 훌륭합니다
Dr. belisarius

와. 아주 좋아 보인다. 요구 사항 중 하나는 시각적 인 초상화였으며 솔루션의 품질은 매우 뛰어나므로 귀하의 답변을 받아들입니다.
ST3

11

Tcl

아마도 미친 접근법 일 것입니다.

package r Tk
package r Img
pack [label .l -text 本田技研工業株式会社 -fg #000000 -bg #ffffff]
update
puts [join [lmap line [[image create photo -data .l] data] {join [lmap pixel $line {expr {$pixel ne {#ffffff}?"@":" "}}] {}}] \n]
exit

스크린 샷 :

스크린 샷


출력은 本田技研工業株式会社? 와 동일합니까 ?
ST3

과는 모든 좋은 솔루션에 아주 좋은 보이지만 모두하지 않습니다.
ST3

유니 코드 문자를 출력하지 않습니다. 그냥 사진을 찍어 그것을 Ascii로 렌더링합니다. 글쎄, 흑백.
Johannes Kuhn

음영을 표시하기 위해 더 다른 문자를 사용할 수 있습니다. (프로그램 크기의 비용으로)
Johannes Kuhn

6

자바 스크립트 + HTML, 대화식 버전 (275 + 90 = 365 자)

Austin의 답변 에서 영감을 얻은 많은 아이디어가 있지만이 아이디어 는 대화식입니다. 당신은 글꼴 크기를 변경할 수 있습니다! (또한 문자 수는 실제로 정확합니다)


스크린 샷

-+버튼을 누르면 글꼴 크기가 변경됩니다. 이미지가 잘리지 만 아이디어를 얻습니다.

영상


피들 (직접 시도하십시오!)

다음은 코드를 직접 실행할 수 있는 JSFiddle 입니다.


JS, 275

h=30,(r=function(){for(x=document.createElement('canvas').getContext('2d'),x.font=h+'px sans-serif',x.fillText('本田技研工業株式会社',0,h),d=x.getImageData(0,0,w=h*10,h).data,s='',a=0;a<h;a++){for(b=0;b<w;b++)s+=d[3+w*4*a+4*b]?0:' ';s+='\n'}document.getElementById('p').innerHTML=s})()

HTML, 90

<button onclick='h--;r()'>-</button><button onclick='h++;r()'>+</button><pre id='p'></pre>

고해상도 버전

http://jsfiddle.net/UjTbK/1/

영상



r=function(h){for(x=document.createElement('canvas').getContext('2d'),x.font=h+'px sans-serif',x.fillText('本田技研工業株式会社',0,h),d=x.getImageData(0,0,w=h*10,h).data,s='',a=0;a<h;a++){for(b=0;b<w;b++)s+=d[3+w*4*a+4*b]?0:' ';s+='\n'}document.getElementById('p').innerHTML=s} (30)3 바이트 더 짧습니다.
코너 O'Brien

4

자바 스크립트, 261 자, 226 축소

이 솔루션에 영감 을 준 jsacii 에게 특별한 감사를드립니다 .

c = document.createElement('canvas').getContext('2d');
c.font="30px sans-serif";c.fillText("本田技研工業株式会社", 0,30);d=c.getImageData(0,0,305,40).data;
s="";
for(var y = 0; y<40;y+=2){
    for(var x=0;x<305;x++)
        s += d[3+4*x+1220*y]? "*" : " ";
    s+="\n";
}

축소

c=document.createElement("canvas").getContext("2d");c.font="30px sans-serif";c.fillText("本田技研工業株式会社",0,30);d=c.getImageData(0,0,305,40).data;s="";for(var y=0;y<40;y+=2){for(var x=0;x<305;x++)s+=d[3+4*x+1220*y]?"*":" ";s+="\n"}

그리고 출력

             ****                                                ****        ****                                                                                ***  ***                ****        ****                           **                       ****                  ****         ****             
             ****               **************************       ****        ****          *****************************                                  ****   ***  ***   ****         ****    ********                          ********                 ******                 ****         ****             
             ****               **************************       ****        ****      *    ** ******* ****** ****** **    *************************       ****  ***  ***  ****          ****   **** ****                          **** *****             **********                ***         ****             
 ****************************   ****       ****       ****   ****************************     ****       ****   ****       ************************    ****************************  ***************************   ****************************        ******    ******        *************    ****             
  ***************************   ****       ****       ****   ***********     ****             ****       ****   ****                 ****                     ****      ****         ***************************   ****************************     *******        *******             ****     ****             
          *********             ****       ****       ****       ****        ****            ****        ****   ****                 ****               **************************      **********   ****                          ****          *****************************       *********************       
         ************           **************************       **** *****************     ****************************             ****               **************************      *************************    ******************          ****  ****************  *****      ****   **** **********       
       ***** **** ****          **************************       ******* ****      ****    ******  ********************              ****                 **********************       **************************    ******************                                           *******       ****             
      *****  ****  *****        ****       ****       ****   ********    *****   *****    *******  ***   ****   ****                 ****                 **********************      *******      ********               ****      ****         ****************************  *************    ****             
   ******    ****    ******     ****       ****       ****   ********      **** ****       * ****  ***   ****   ****                 ****              **************************** *********     ***********             ****      ****           *      ****     *      **   **** *** ****    ****             
 *****************************  ****       ****       ****       ****       *******          ****  ***  ****    ****                 ****              ****************************  **  ****   ********* *****           ****     * ****   ***          ****    *****              ***         ****             
 ****   *    ****        ****   ****       ****       ****       ****      *********         ********* *****    ****     ****************************        ****************            **********  ****  ******         *********** ****  ****        ****       *****            ***         ****             
             ****               **************************       ****  *******  *******      **************     ****     ****************************  **********  ****  ***********     ********    ****    ****  **************      ********    ***********************          ***  *******************     
             ****               ****                  ****   **************        *******   ****    *****      ****                                   ******      ****       *****      ****        ****           ***                 ******    ****************     *****       ****  *******************     
             ***                                                 *                     *              **         **                                                ****                  ****         ***                                                               **          ***                          

첫 번째 출력 라인을 수정해야한다고 생각합니다.
ST3

즉, 단지 편집기에 붙여 출신 편집에 고정
교수 알만

내 카운트에 따르면 261 자입니다.
Doorknob

@Doorknob 내가 축소 된 수를 게시, 업데이트 변경
Allman 교수

루프 에서 var명령문을 제거하고 for원하는 경우 "*"숫자로 대체 할 수 있습니다 .
코너 O'Brien

1

자바, 267260

내 솔루션이 Johannes Kuhn의 답변과 다를 것은 아니지만, Java에서 잘 처리 할 수있는 문제인 것 같습니다. 내 솔루션은 훨씬 길지 않습니다. 출력이 약간 다르지만 게시 할 것입니다.

class A{public static void main(String[]a){java.awt.image.BufferedImage b=new java.awt.image.BufferedImage(130,16,2);b.createGraphics().drawString("本田技研工業株式会社",0,13);for(int y=0;y<2080;System.out.print((b.getRGB(y%130,y/130)<0?"#":" ")+(++y%130<1?"\n":"")));}}

형식 :

class A {
    public static void main(String[]a) {
        java.awt.image.BufferedImage b = new java.awt.image.BufferedImage(130, 16, 2);
        b.createGraphics().drawString("本田技研工業株式会社", 0, 13);
        for (int y = 0; y < 2080; System.out
                .print((b.getRGB(y % 130, y / 130) < 0 ? "#" : " ")
                        + (++y % 130 < 1 ? "\n" : "")))
            ;
    }
}

산출:

      #                     #     #                                   # #        #  # #                       #         #    #    
      #       ###########   #     #     #### #######                # # # #      #  # #            # ##      # #        #    #    
 ###########  #    #    #   #  ########   #   #  #    ##########  # # # # # #    #  ######         #       ##   ##    #####  #    
      #       #    #    # ####    #      #    #  #        #       ###########  ### #  #     ############  #       #       #  #    
     ###      #    #    #   #     #      #    #  #        #          #   #       #    #            #     # ######  ##    #  ##### 
    # # #     ###########   #  #######   ### #######      #       ###########   ### #######  ##### #                    #    #    
   #  #  #    #    #    #   ##  #   #   ## #  #  #        #        #########   # #    #        #   #                   ###   #    
  #   #   #   #    #    # ###    #  #    # #  #  #        #            #       # #   ###       #    #    ###########  # # #  #    
 #  #####  #  #    #    #   #    # #     # #  #  #        #       ###########  # #  # # #      #    #        #          #    #    
 #    #     # #    #    #   #    ###     ### #   #        #          # # #       # #  #  #     # ## #  #    #   #       #    #    
      #       ###########   #  ##   ##   # # #   #   ###########   ##  #  ###    # #  #   # #####    # #    #    #      # ####### 
      #       #         # ##  #       #      #   #                #    #     #   #    #               #  ######## ##    #         

@Bakuriu 다른 글꼴을 사용하십시오. @ 메모 : 가져 오지 않고 6자를 저장할 수 있습니다. (가져 오기 비용은 정식 이름을 사용하여 36 자, 각 사용시 15 자임).
Johannes Kuhn

@Johannes Kuhn : 당신은 절대적으로 맞습니다. 이에 따라 답변을 업데이트하고 배열 선언에서 또 다른 중복 공백을 찾았습니다.
메모
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.