Hari ini (24 September) adalah ulang tahun HONDA [ditutup]

10

hari ini (24 September) adalah hari ulang tahun perusahaan HONDA. Awalnya nama perusahaan mereka adalah

本田技研工業株式会社

Saya ingin meminta untuk membuat hadiah untuk HONDA. Tugasnya adalah membuat nama perusahaan program cetak. Anda dapat melakukannya dengan cara apa pun yang Anda inginkan, tetapi hanya ada satu aturan, Unicode tidak diperbolehkan. Seharusnya seni ASCII.

Saya ingin bertanya untuk mengirim kode dan output. Seperti biasa untuk menentukan pemenang, saya akan melihat panjang kode, namun potret dalam kasus ini juga penting.

EDIT: output harus mirip dengan ini:本田技研工業株式会社

ST3
sumber
Baiklah, jadi apa yang menghentikan kita dari menggunakan 'HONDA'dan mengklaimnya mencetak nama perusahaan di GolfScript? (Saya hanya mencoba menunjukkan beberapa celah). Juga, apakah ini dimaksudkan untuk ditandai sebagai kode-golf ?
Volatilitas
@Vatilitas Saya telah mengedit setelah komentar Anda.
ST3
Unicode is not alloweddimana? Pada output (terdengar masuk akal)? Sebagai skrip? Sebagai representasi internal dalam skrip Anda?
Johannes Kuhn
@JohannesKuhn Maksud saya tidak ada karakter yang dicetak tidak boleh UNICODE, dalam skrip Anda dapat menggunakannya tetapi output harus pada karakter tabel ASCII.
ST3
2
Spek terlalu kabur untuk memungkinkan penentuan obyektif apakah suatu program memenuhi atau tidak.
Peter Taylor

Jawaban:

20

Mathematica

Di sini karakter diraster secara individual. Angka nol dari data gambar biner dari gambar yang diperkecil kemudian diganti dengan tanda bintang dan array itu sendiri kemudian dicetak.

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

Honda

Di bawah semua karakter dirasterisasi sebagai gambar tunggal. Tanda bintang sedikit lebih sulit dikenali sebagai tanda bintang dalam kasus ini.

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

image2

DavidC
sumber
Sangat, sangat baik
Dr. belisarius
Wow. Terlihat sangat bagus. Salah satu persyaratannya adalah potret visual dan solusi Anda memiliki kualitas yang sangat tinggi, jadi saya menerima jawaban Anda.
ST3
11

Tcl

Ya, pendekatan yang mungkin gila.

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

Berikut tangkapan layar:

tangkapan layar

Johannes Kuhn
sumber
Apakah output sama dengan 本田技研工業株式会社?
ST3
Yah dan tidak terlihat sangat bagus, tetapi semuanya adalah solusi yang baik.
ST3
Saya tidak menampilkan karakter unicode apa pun. Saya hanya mengambil foto mereka dan menjadikannya sebagai Ascii. Yah, b / b.
Johannes Kuhn
Saya dapat karakter yang lebih berbeda untuk menampilkan nuansa. (Dengan mengorbankan ukuran progam)
Johannes Kuhn
6

JavaScript + HTML, versi interaktif (275 + 90 = 365 karakter)

Banyak ide yang terinspirasi oleh jawaban Austin , tetapi yang ini interaktif; Anda dapat mengubah ukuran font! (juga jumlah karakter sebenarnya benar)


Tangkapan layar

Menekan tombol -dan +mengubah ukuran font. Gambar terpotong, tetapi Anda mendapatkan ide.

gambar


Fiddle (coba sendiri!)

Berikut ini adalah JSFiddle tempat Anda dapat menjalankan kode sendiri.


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 resolusi tinggi

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

gambar


Gagang pintu
sumber
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)lebih pendek tiga byte.
Conor O'Brien
4

Javascript, 261 karakter, 226 diperkecil

terima kasih khusus kepada jsacii untuk menginspirasi solusi ini.

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

diperkecil

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

dan hasilnya

             ****                                                ****        ****                                                                                ***  ***                ****        ****                           **                       ****                  ****         ****             
             ****               **************************       ****        ****          *****************************                                  ****   ***  ***   ****         ****    ********                          ********                 ******                 ****         ****             
             ****               **************************       ****        ****      *    ** ******* ****** ****** **    *************************       ****  ***  ***  ****          ****   **** ****                          **** *****             **********                ***         ****             
 ****************************   ****       ****       ****   ****************************     ****       ****   ****       ************************    ****************************  ***************************   ****************************        ******    ******        *************    ****             
  ***************************   ****       ****       ****   ***********     ****             ****       ****   ****                 ****                     ****      ****         ***************************   ****************************     *******        *******             ****     ****             
          *********             ****       ****       ****       ****        ****            ****        ****   ****                 ****               **************************      **********   ****                          ****          *****************************       *********************       
         ************           **************************       **** *****************     ****************************             ****               **************************      *************************    ******************          ****  ****************  *****      ****   **** **********       
       ***** **** ****          **************************       ******* ****      ****    ******  ********************              ****                 **********************       **************************    ******************                                           *******       ****             
      *****  ****  *****        ****       ****       ****   ********    *****   *****    *******  ***   ****   ****                 ****                 **********************      *******      ********               ****      ****         ****************************  *************    ****             
   ******    ****    ******     ****       ****       ****   ********      **** ****       * ****  ***   ****   ****                 ****              **************************** *********     ***********             ****      ****           *      ****     *      **   **** *** ****    ****             
 *****************************  ****       ****       ****       ****       *******          ****  ***  ****    ****                 ****              ****************************  **  ****   ********* *****           ****     * ****   ***          ****    *****              ***         ****             
 ****   *    ****        ****   ****       ****       ****       ****      *********         ********* *****    ****     ****************************        ****************            **********  ****  ******         *********** ****  ****        ****       *****            ***         ****             
             ****               **************************       ****  *******  *******      **************     ****     ****************************  **********  ****  ***********     ********    ****    ****  **************      ********    ***********************          ***  *******************     
             ****               ****                  ****   **************        *******   ****    *****      ****                                   ******      ****       *****      ****        ****           ***                 ******    ****************     *****       ****  *******************     
             ***                                                 *                     *              **         **                                                ****                  ****         ***                                                               **          ***                          
Profesor Allman
sumber
Saya pikir jalur keluaran pertama harus diperbaiki.
ST3
Itu hanya dari menempelkan ke editor, diperbaiki di edit
Profesor Allman
Itu 261 karakter, menurut perhitungan saya ...
Gagang Pintu
@ Doorknob saya memposting hitungan yang diperkecil, diubah dalam pembaruan
Profesor Allman
Anda dapat menghapus varpernyataan dari forloop dan Anda dapat mengganti (jika Anda mau) "*"dengan nomor.
Conor O'Brien 6-15
1

Java, 267.260 karakter

Baiklah, saya kira solusi saya tidak jauh berbeda dari jawaban Johannes Kuhn, tetapi sepertinya ini adalah masalah yang dapat ditangani dengan baik di Jawa; solusi saya tidak lebih lama; dan hasilnya sedikit berbeda, saya akan mempostingnya:

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

Diformat sebagai:

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

Keluaran:

      #                     #     #                                   # #        #  # #                       #         #    #    
      #       ###########   #     #     #### #######                # # # #      #  # #            # ##      # #        #    #    
 ###########  #    #    #   #  ########   #   #  #    ##########  # # # # # #    #  ######         #       ##   ##    #####  #    
      #       #    #    # ####    #      #    #  #        #       ###########  ### #  #     ############  #       #       #  #    
     ###      #    #    #   #     #      #    #  #        #          #   #       #    #            #     # ######  ##    #  ##### 
    # # #     ###########   #  #######   ### #######      #       ###########   ### #######  ##### #                    #    #    
   #  #  #    #    #    #   ##  #   #   ## #  #  #        #        #########   # #    #        #   #                   ###   #    
  #   #   #   #    #    # ###    #  #    # #  #  #        #            #       # #   ###       #    #    ###########  # # #  #    
 #  #####  #  #    #    #   #    # #     # #  #  #        #       ###########  # #  # # #      #    #        #          #    #    
 #    #     # #    #    #   #    ###     ### #   #        #          # # #       # #  #  #     # ## #  #    #   #       #    #    
      #       ###########   #  ##   ##   # # #   #   ###########   ##  #  ###    # #  #   # #####    # #    #    #      # ####### 
      #       #         # ##  #       #      #   #                #    #     #   #    #               #  ######## ##    #         
memo
sumber
@ Bakuriu Gunakan font yang berbeda. @ memo: Anda dapat menyimpan 6 karakter dengan TIDAK mengimpor. (mengimpor biaya 36 karakter, menggunakan nama lengkap yang memenuhi syarat biaya 15 karakter untuk setiap penggunaan).
Johannes Kuhn
@ Johannes Kuhn: Anda memang benar. Saya telah memperbarui jawaban yang sesuai, dan juga menemukan kosong kosong yang berlebihan dalam deklarasi array.
memo