Hoje (24 de setembro) é o aniversário da HONDA [fechado]

10

hoje (24 de setembro) é aniversário da empresa HONDA. Originalmente, o nome da empresa é

本田技研工業株式会社

Quero pedir para fazer um presente para HONDA. A tarefa é fazer com que o programa imprima o nome da empresa. Você pode fazer o que quiser, mas existe apenas uma regra, o Unicode não é permitido. Deve ser arte ASCII.

Quero pedir para postar código e saída. Como sempre, para determinar o vencedor, examinarei o comprimento do código; no entanto, o retrato neste caso também é importante.

EDIT: saída tem que parecer semelhante a isso:本田技研工業株式会社

ST3
fonte
Tudo bem, então o que nos impede de usar 'HONDA'e afirmar que imprime o nome da empresa no GolfScript? (Eu só estou tentando apontar algumas brechas). Além disso, isso deve ser marcado como código-golfe ?
Volatilidade
@ Volatility Eu fiz edição após o seu comentário.
ST3 24/09
Unicode is not allowedOnde? Na saída (parece razoável)? Como script? Como representação interna em seu script?
Johannes Kuhn,
@JohannesKuhn Eu quis dizer que nenhum dos caracteres impressos não pode ser UNICODE, no script você pode usá-lo, mas a saída deve estar nos caracteres da tabela ASCII.
ST3 24/09
2
A especificação é muito vaga para permitir uma determinação objetiva se um programa atende ou não.
22813 Peter Taylor

Respostas:

20

Mathematica

Aqui, os caracteres são rasterizados individualmente. Os zeros dos dados da imagem binária de uma imagem reduzida são substituídos por asteriscos e a própria matriz é impressa.

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

Honda

Abaixo de todos os caracteres foram rasterizados como uma única imagem. Os asteriscos são um pouco mais difíceis de reconhecer como asteriscos neste caso.

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

image2

DavidC
fonte
Muito, muito bom
Dr. belisarius 26/09/2013
Uau. Parece muito bom. Um dos requisitos era o retrato visual e sua solução tem uma qualidade muito alta, por isso estou aceitando sua resposta.
ST3 26/09
11

Tcl

Bem, uma abordagem provavelmente louca.

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

Aqui está uma captura de tela:

captura de tela

Johannes Kuhn
fonte
A saída é igual a 本田技研工業株式会社?
ST3 24/09
Bem e não parece muito bom, mas apesar de tudo boa solução.
ST3
Não produzo caracteres unicode. Eu apenas tiro uma foto deles e a faço como Ascii. Bem, preto e branco.
Johannes Kuhn,
Eu poderia ter mais personagens diferentes para exibir tons. (No custo do tamanho de programas)
Johannes Kuhn
6

JavaScript + HTML, versão interativa (275 + 90 = 365 caracteres)

Muitas idéias inspiradas na resposta de Austin , mas essa é interativa; você pode alterar o tamanho da fonte! (também a contagem de caracteres está correta)


Captura de tela

Pressionar os botões -e +altera o tamanho da fonte. A imagem está cortada, mas você entendeu.

imagem


Fiddle (tente você mesmo!)

Aqui está um JSFiddle onde você pode executar o código sozinho.


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>

Versão de alta resolução

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

imagem


Maçaneta da porta
fonte
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)é três bytes mais curto.
Conor O'Brien
4

Javascript, 261 caracteres, 226 minificado

agradecimentos especiais a jsacii por inspirar esta solução.

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";
}

minificado

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"}

e a saída

             ****                                                ****        ****                                                                                ***  ***                ****        ****                           **                       ****                  ****         ****             
             ****               **************************       ****        ****          *****************************                                  ****   ***  ***   ****         ****    ********                          ********                 ******                 ****         ****             
             ****               **************************       ****        ****      *    ** ******* ****** ****** **    *************************       ****  ***  ***  ****          ****   **** ****                          **** *****             **********                ***         ****             
 ****************************   ****       ****       ****   ****************************     ****       ****   ****       ************************    ****************************  ***************************   ****************************        ******    ******        *************    ****             
  ***************************   ****       ****       ****   ***********     ****             ****       ****   ****                 ****                     ****      ****         ***************************   ****************************     *******        *******             ****     ****             
          *********             ****       ****       ****       ****        ****            ****        ****   ****                 ****               **************************      **********   ****                          ****          *****************************       *********************       
         ************           **************************       **** *****************     ****************************             ****               **************************      *************************    ******************          ****  ****************  *****      ****   **** **********       
       ***** **** ****          **************************       ******* ****      ****    ******  ********************              ****                 **********************       **************************    ******************                                           *******       ****             
      *****  ****  *****        ****       ****       ****   ********    *****   *****    *******  ***   ****   ****                 ****                 **********************      *******      ********               ****      ****         ****************************  *************    ****             
   ******    ****    ******     ****       ****       ****   ********      **** ****       * ****  ***   ****   ****                 ****              **************************** *********     ***********             ****      ****           *      ****     *      **   **** *** ****    ****             
 *****************************  ****       ****       ****       ****       *******          ****  ***  ****    ****                 ****              ****************************  **  ****   ********* *****           ****     * ****   ***          ****    *****              ***         ****             
 ****   *    ****        ****   ****       ****       ****       ****      *********         ********* *****    ****     ****************************        ****************            **********  ****  ******         *********** ****  ****        ****       *****            ***         ****             
             ****               **************************       ****  *******  *******      **************     ****     ****************************  **********  ****  ***********     ********    ****    ****  **************      ********    ***********************          ***  *******************     
             ****               ****                  ****   **************        *******   ****    *****      ****                                   ******      ****       *****      ****        ****           ***                 ******    ****************     *****       ****  *******************     
             ***                                                 *                     *              **         **                                                ****                  ****         ***                                                               **          ***                          
Professor Allman
fonte
Eu acho que a primeira linha de saída deve ser corrigida.
ST3
Isso foi apenas a partir de colar no editor, fixadas em editar
Professor Allman
São 261 caracteres, pela minha contagem ...
Maçaneta da porta
@Doorknob eu publiquei a contagem minificada, alterada na atualização
Professor Allman
Você pode remover as varinstruções dos forloops e pode substituir (se desejar) "*"por um número.
Conor O'Brien
1

Java, 267.260 caracteres

Tudo bem, acho que minha solução não é tão diferente da resposta de Johannes Kuhn, mas, ao que parece, esse é um problema que pode ser bem tratado em Java; minha solução não é muito mais longa; e a saída é um pouco diferente, eu vou postar no entanto:

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":"")));}}

Formatado como:

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" : "")))
            ;
    }
}

Resultado:

      #                     #     #                                   # #        #  # #                       #         #    #    
      #       ###########   #     #     #### #######                # # # #      #  # #            # ##      # #        #    #    
 ###########  #    #    #   #  ########   #   #  #    ##########  # # # # # #    #  ######         #       ##   ##    #####  #    
      #       #    #    # ####    #      #    #  #        #       ###########  ### #  #     ############  #       #       #  #    
     ###      #    #    #   #     #      #    #  #        #          #   #       #    #            #     # ######  ##    #  ##### 
    # # #     ###########   #  #######   ### #######      #       ###########   ### #######  ##### #                    #    #    
   #  #  #    #    #    #   ##  #   #   ## #  #  #        #        #########   # #    #        #   #                   ###   #    
  #   #   #   #    #    # ###    #  #    # #  #  #        #            #       # #   ###       #    #    ###########  # # #  #    
 #  #####  #  #    #    #   #    # #     # #  #  #        #       ###########  # #  # # #      #    #        #          #    #    
 #    #     # #    #    #   #    ###     ### #   #        #          # # #       # #  #  #     # ## #  #    #   #       #    #    
      #       ###########   #  ##   ##   # # #   #   ###########   ##  #  ###    # #  #   # #####    # #    #    #      # ####### 
      #       #         # ##  #       #      #   #                #    #     #   #    #               #  ######## ##    #         
memorando
fonte
@Bakuriu Use uma fonte diferente. @ memo: você pode salvar 6 caracteres NÃO importando. (a importação custa 36 caracteres, usando o nome completo qualificado custa 15 caracteres para cada uso).
Johannes Kuhn
@ Johannes Kuhn: Você está absolutamente certo. Atualizei a resposta de acordo e também encontrei outro espaço em branco redundante na declaração da matriz.
Meme