Hoy (24 de septiembre) es el cumpleaños de HONDA [cerrado]

10

Hoy (24 de septiembre) es el cumpleaños de la empresa HONDA. Originalmente el nombre de su compañía es

本田技研工業株式会社

Quiero pedir hacer un regalo para HONDA. La tarea es hacer que el programa imprima el nombre de la empresa. Puede hacerlo de la forma que desee, pero solo hay una regla, Unicode no está permitido. Debería ser el art. ASCII.

Quiero pedir publicar código y salida. Como siempre para determinar el ganador, miraré la longitud del código, sin embargo, el retrato en este caso también es importante.

EDITAR: la salida tiene que ser similar a esto:本田技研工業株式会社

ST3
fuente
Bien, entonces, ¿qué nos impide usar 'HONDA'y afirmar que imprime el nombre de la compañía en GolfScript? (Solo estoy tratando de señalar algunas lagunas). Además, ¿está destinado a ser etiquetado como code-golf ?
Volatilidad
@Volatility He hecho editar después de tu comentario.
ST3
Unicode is not allowed¿dónde? En la salida (suena razonable)? Como guión? ¿Como representación interna en tu guión?
Johannes Kuhn
@JohannesKuhn Quise decir que ninguno de los caracteres impresos puede ser UNICODE, en el script puede usarlo, pero la salida debe estar en caracteres de tabla ASCII.
ST3
2
La especificación es demasiado vaga para permitir una determinación objetiva de si un programa la cumple o no.
Peter Taylor

Respuestas:

20

Mathematica

Aquí los personajes se rasterizan individualmente. Los ceros de los datos de imagen binaria de una imagen reducida se reemplazan con asteriscos y se imprime la matriz.

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

Honda

Debajo, todos los caracteres se rasterizaron como una sola imagen. Los asteriscos son un poco más difíciles de reconocer como asteriscos en este caso.

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

imagen2

DavidC
fuente
Muy, muy agradable
Dr. belisarius
Guau. Se ve muy bien. Uno de los requisitos era el retrato visual y su solución tiene una calidad muy alta, así que estoy aceptando su respuesta.
ST3
11

Tcl

Bueno, un enfoque probablemente loco.

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

Aquí una captura de pantalla:

captura de pantalla

Johannes Kuhn
fuente
¿Salida igual que 本田技研工業株式会社?
ST3
Bueno y no se ven muy bien, pero en general, una buena solución.
ST3
No imprimo ningún carácter unicode. Solo tomo una foto de ellos y los represento como Ascii. Bueno, b / w.
Johannes Kuhn
Podría más personajes diferentes para mostrar sombras. (A costa del tamaño del programa)
Johannes Kuhn
6

JavaScript + HTML, versión interactiva (275 + 90 = 365 caracteres)

Muchas ideas inspiradas por la respuesta de Austin , pero esta es interactiva; ¡puedes cambiar el tamaño de fuente! (también el recuento de caracteres es realmente correcto)


Captura de pantalla

Al presionar los botones -y se +cambia el tamaño de fuente. La imagen está cortada, pero entiendes la idea.

imagen


Fiddle (¡pruébalo tú mismo!)

Aquí hay un JSFiddle donde puede ejecutar el código usted mismo.


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>

Versión de alta resolución

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

imagen


Pomo de la puerta
fuente
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)es tres bytes más corto.
Conor O'Brien el
4

Javascript, 261 caracteres, 226 minificados

Un agradecimiento especial a jsacii por inspirar esta solució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";
}

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

y la salida

             ****                                                ****        ****                                                                                ***  ***                ****        ****                           **                       ****                  ****         ****             
             ****               **************************       ****        ****          *****************************                                  ****   ***  ***   ****         ****    ********                          ********                 ******                 ****         ****             
             ****               **************************       ****        ****      *    ** ******* ****** ****** **    *************************       ****  ***  ***  ****          ****   **** ****                          **** *****             **********                ***         ****             
 ****************************   ****       ****       ****   ****************************     ****       ****   ****       ************************    ****************************  ***************************   ****************************        ******    ******        *************    ****             
  ***************************   ****       ****       ****   ***********     ****             ****       ****   ****                 ****                     ****      ****         ***************************   ****************************     *******        *******             ****     ****             
          *********             ****       ****       ****       ****        ****            ****        ****   ****                 ****               **************************      **********   ****                          ****          *****************************       *********************       
         ************           **************************       **** *****************     ****************************             ****               **************************      *************************    ******************          ****  ****************  *****      ****   **** **********       
       ***** **** ****          **************************       ******* ****      ****    ******  ********************              ****                 **********************       **************************    ******************                                           *******       ****             
      *****  ****  *****        ****       ****       ****   ********    *****   *****    *******  ***   ****   ****                 ****                 **********************      *******      ********               ****      ****         ****************************  *************    ****             
   ******    ****    ******     ****       ****       ****   ********      **** ****       * ****  ***   ****   ****                 ****              **************************** *********     ***********             ****      ****           *      ****     *      **   **** *** ****    ****             
 *****************************  ****       ****       ****       ****       *******          ****  ***  ****    ****                 ****              ****************************  **  ****   ********* *****           ****     * ****   ***          ****    *****              ***         ****             
 ****   *    ****        ****   ****       ****       ****       ****      *********         ********* *****    ****     ****************************        ****************            **********  ****  ******         *********** ****  ****        ****       *****            ***         ****             
             ****               **************************       ****  *******  *******      **************     ****     ****************************  **********  ****  ***********     ********    ****    ****  **************      ********    ***********************          ***  *******************     
             ****               ****                  ****   **************        *******   ****    *****      ****                                   ******      ****       *****      ****        ****           ***                 ******    ****************     *****       ****  *******************     
             ***                                                 *                     *              **         **                                                ****                  ****         ***                                                               **          ***                          
Profesor Allman
fuente
Creo que la primera línea de salida debería ser fija.
ST3
Eso fue solo por pegar en el editor, corregido en la edición
Profesor Allman
Eso es 261 caracteres, según mi cuenta ...
Pomo de la puerta
@Doorknob publiqué el recuento minimizado, cambiado en la actualización
Profesor Allman
Puede eliminar las vardeclaraciones de los forbucles y puede reemplazar (si lo desea) "*"con un número.
Conor O'Brien el
1

Java, 267 260 caracteres

Bien, supongo que mi solución no es tan diferente de la respuesta de Johannes Kuhn, pero como parece, este es un problema que se puede manejar bien en Java; mi solución no es mucho más larga; y el resultado es ligeramente diferente, lo publicaré sin embargo:

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

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

Salida:

      #                     #     #                                   # #        #  # #                       #         #    #    
      #       ###########   #     #     #### #######                # # # #      #  # #            # ##      # #        #    #    
 ###########  #    #    #   #  ########   #   #  #    ##########  # # # # # #    #  ######         #       ##   ##    #####  #    
      #       #    #    # ####    #      #    #  #        #       ###########  ### #  #     ############  #       #       #  #    
     ###      #    #    #   #     #      #    #  #        #          #   #       #    #            #     # ######  ##    #  ##### 
    # # #     ###########   #  #######   ### #######      #       ###########   ### #######  ##### #                    #    #    
   #  #  #    #    #    #   ##  #   #   ## #  #  #        #        #########   # #    #        #   #                   ###   #    
  #   #   #   #    #    # ###    #  #    # #  #  #        #            #       # #   ###       #    #    ###########  # # #  #    
 #  #####  #  #    #    #   #    # #     # #  #  #        #       ###########  # #  # # #      #    #        #          #    #    
 #    #     # #    #    #   #    ###     ### #   #        #          # # #       # #  #  #     # ## #  #    #   #       #    #    
      #       ###########   #  ##   ##   # # #   #   ###########   ##  #  ###    # #  #   # #####    # #    #    #      # ####### 
      #       #         # ##  #       #      #   #                #    #     #   #    #               #  ######## ##    #         
memorándum
fuente
@Bakuriu Use una fuente diferente. @ memo: puede guardar 6 caracteres NO importando. (la importación cuesta 36 caracteres, usar el nombre calificado completo cuesta 15 caracteres para cada uso).
Johannes Kuhn
@Johannes Kuhn: Tienes toda la razón. He actualizado la respuesta en consecuencia, y también encontré otro espacio en blanco redundante en la declaración de matriz.
memorando