Oggi (24 settembre) è il compleanno di HONDA [chiuso]


10

oggi (24 settembre) è il compleanno della società HONDA. Inizialmente il loro nome dell'azienda è

本田技研工業株式会社

Voglio chiedere di fare un regalo per HONDA. Il compito è fare in modo che il nome del programma venga stampato. Puoi farlo come vuoi, ma c'è solo una regola, Unicode non è permesso. Dovrebbe essere l'arte ASCII.

Voglio chiedere di inserire il codice e l'output. Come sempre per determinare il vincitore, esaminerò la lunghezza del codice, tuttavia anche il ritratto in questo caso è importante.

EDIT: l' output deve apparire simile a questo:本田技研工業株式会社


Bene, quindi cosa ci impedisce di usarlo 'HONDA'e rivendicarlo stampa il nome dell'azienda in GolfScript? (Sto solo cercando di evidenziare alcune lacune). Inoltre, questo dovrebbe essere etichettato come code-golf ?
Volatilità,

@Volatilità Ho effettuato la modifica dopo il tuo commento.
ST3,

Unicode is not alloweddove? All'uscita (sembra ragionevole)? Come sceneggiatura? Come rappresentazione interna nella tua sceneggiatura?
Johannes Kuhn,

@JohannesKuhn Intendevo che nessuno dei caratteri stampati non può essere UNICODE, nello script puoi usarlo ma l'output dovrebbe essere sui caratteri della tabella ASCII.
ST3,

2
Le specifiche sono troppo vaghe per consentire una determinazione obiettiva del rispetto o meno di un programma.
Peter Taylor,

Risposte:


20

matematica

Qui i personaggi sono rasterizzati individualmente. Gli zero dei dati dell'immagine binaria di un'immagine ridotta vengono quindi sostituiti con asterischi e l'array stesso viene quindi stampato.

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

Honda

Sotto tutti i personaggi sono stati rasterizzati come una singola immagine. Gli asterischi sono un po 'più difficili da riconoscere come asterischi in questo caso.

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

image2


Molto, molto bello
Dr. belisarius,

Wow. Sembra molto bello Uno dei requisiti era il ritratto visivo e la tua soluzione ha una qualità molto elevata, quindi accetto la tua risposta.
ST3,

11

Tcl

Bene, un approccio probabilmente pazzo.

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

Ecco uno screenshot:

immagine dello schermo


L'output è uguale a 本田技研工業株式会社?
ST3,

Bene e non sembrano molto buoni, ma tutto sommato una buona soluzione.
ST3,

Non ho prodotto alcun carattere unicode. Faccio solo una loro foto e la rendo come Ascii. Bene, b / n.
Johannes Kuhn,

Potrei personaggi più diversi per visualizzare le sfumature. (A scapito della dimensione del programma)
Johannes Kuhn,

6

JavaScript + HTML, versione interattiva (275 + 90 = 365 caratteri)

Molte idee ispirate alla risposta di Austin , ma questa è interattiva; puoi cambiare la dimensione del carattere! (anche il conteggio dei personaggi è effettivamente corretto)


Immagine dello schermo

Premendo i pulsanti -e si +cambia la dimensione del carattere. L'immagine è tagliata, ma hai l'idea.

Immagine


Violino (provalo tu stesso!)

Ecco un JSFiddle in cui è possibile eseguire il codice da soli.


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>

Versione ad alta risoluzione

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

Immagine



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)è di tre byte più breve.
Conor O'Brien,

4

Javascript, 261 caratteri, 226 minimizzati

un ringraziamento speciale a jsacii per aver ispirato questa soluzione.

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

minified

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 l'uscita

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

Penso che la prima linea di uscita dovrebbe essere corretta.
ST3

Era solo incollato nell'editor, corretto in modifica
Professor Allman,

Sono 261 personaggi, secondo il mio conteggio ...
Maniglia della porta

@Doorknob ho pubblicato il conteggio minimizzato, modificato in aggiornamento
Professor Allman,

Puoi rimuovere le varistruzioni dai forloop e puoi sostituire (se lo desideri) "*"con un numero.
Conor O'Brien,

1

Java, 267 260 caratteri

Va bene, immagino che la mia soluzione non sia così diversa dalla risposta di Johannes Kuhn, ma siccome sembra che questo sia un problema che può essere gestito bene in Java; la mia soluzione non è molto più lunga; e l'output è leggermente diverso, lo posterò comunque:

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

Formattato come:

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

Produzione:

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

@Bakuriu Utilizza un carattere diverso. @ memo: è possibile salvare 6 caratteri NON importandoli. (l'importazione costa 36 caratteri, l'utilizzo del nome completo costa 15 caratteri per ogni utilizzo).
Johannes Kuhn,

@Johannes Kuhn: hai assolutamente ragione. Ho aggiornato la risposta di conseguenza e ho anche trovato un altro spazio vuoto ridondante nella dichiarazione dell'array.
promemoria
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.