Bugün (24 Eylül) HONDA doğum günü [kapalı]


10

bugün (24 Eylül) HONDA şirketinin doğum günüdür. Başlangıçta şirket adı

本田技研工業株式会社

HONDA için bir hediye yapmak istiyorum. Görev, program yazdırma şirket adını yapmaktır. İstediğiniz şekilde yapabilirsiniz, ancak yalnızca bir kural vardır, Unicode'a izin verilmez. ASCII sanatı olmalı.

Kod ve çıktı göndermek istiyorum. Her zaman olduğu gibi kazananı belirlemek için kodun uzunluğuna bakacağım, ancak bu durumda portre de önemlidir.

EDIT: çıktı buna benzer görünmek zorunda:本田技研工業株式会社


Pekala, peki bizi 'HONDA'GolfScript'te şirket adını yazdırmayı ve kullanmamızı engelleyen nedir? (Sadece bazı boşluklara dikkat çekmeye çalışıyorum). Ayrıca, bu kod-golf olarak etiketlenecek mi?
Volatilite

@Volatility Yorumunuzdan sonra düzenleme yaptım.
ST3

Unicode is not allowednerede? Çıkışta (makul geliyor)? Senaryo olarak mı? Senaryonuzda dahili temsil olarak mı?
Johannes Kuhn

@JohannesKuhn Basılı karakterlerin hiçbiri UNICODE olamaz, komut dosyasında kullanabilirsiniz, ancak çıktı ASCII tablo karakterlerinde olmalıdır.
ST3

2
Spesifikasyon, bir programın onu karşılayıp karşılamadığının nesnel bir şekilde belirlenmesine izin vermek için çok belirsiz.
Peter Taylor

Yanıtlar:


20

Mathematica

Burada karakterler ayrı ayrı rasterleştirilir. İndirgenmiş bir görüntünün ikili görüntü verilerinin sıfırları yıldız işaretleri ile değiştirilir ve dizinin kendisi yazdırılır.

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

Honda

Aşağıda tüm karakterler tek bir görüntü olarak rasterleştirildi. Yıldız işaretlerini bu durumda yıldız işareti olarak tanımak biraz daha zordur.

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

image2


Very, very nice
Dr. belisarius

Vay. Çok iyi görünüyor. Şartlardan biri görsel portre ve çözümünüzün kalitesi çok yüksekti, bu yüzden cevabınızı kabul ediyorum.
ST3

11

Tcl

Muhtemelen çılgın bir yaklaşım.

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

İşte bir ekran görüntüsü:

ekran görüntüsü


Çıktı ile aynı mı 本田技研工業株式会社?
ST3

Peki ve çok iyi görünmüyor, ama sonuçta iyi bir çözüm.
ST3

Unicode karakter çıktılamıyorum. Sadece bir fotoğrafını çekiyorum ve bunu Ascii olarak yapıyorum. S / b.
Johannes Kuhn

Gölgeleri göstermek için daha farklı karakterler kullanabilirdim. (Program boyutu pahasına)
Johannes Kuhn

6

JavaScript + HTML, etkileşimli sürüm (275 + 90 = 365 karakter)

Birçok fikir Austin'in cevabından esinlenmiştir , ancak bu etkileşimlidir; yazı tipi boyutunu değiştirebilirsiniz! (ayrıca karakter sayısı doğrudur)


Ekran görüntüsü

-Ve +düğmelerine basmak yazı tipi boyutunu değiştirir. Görüntü kesildi, ama fikri anladınız.

görüntü


Keman (kendin dene!)

İşte kodu kendiniz çalıştırabileceğiniz bir 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>

Yüksek çözünürlüklü sürüm

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

görüntü



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)üç bayt daha kısadır.
Conor O'Brien

4

Javascript, 261 karakter, 226 minimize

Bu çözüme ilham verdiği için jsacii'ye özel teşekkürler .

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

küçültülmüş

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

ve çıktı

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

İlk çıktı hattının sabitlenmesi gerektiğini düşünüyorum.
ST3

Bu sadece editöre
yapışmaktan

Bu 261 karakter, benim sayımla ...
Kapı Tokmağı

@Doorknob, güncellemede değiştirilen küçültülmüş sayıyı yayınladım
Profesör Allman

varİfadeleri fordöngülerden kaldırabilir ve (isterseniz) "*"bir sayıyla değiştirebilirsiniz.
Conor O'Brien

1

Java, 267 260 karakter

Tamam, sanırım çözümüm Johannes Kuhn'un cevabından çok farklı değil, ama görünüşe göre bu Java'da güzelce ele alınabilecek bir sorun; benim çözümüm artık çok uzun değil; ve çıktı biraz farklı, yine de göndereceğim:

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

Şu şekilde biçimlendirildi:

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

Çıktı:

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

@Bakuriu Farklı bir yazı tipi kullanın. @ memo: İçe aktarmayarak 6 karakter kaydedebilirsiniz. (tam adı kullanan 36 karakter, her kullanım için 15 karakterdir).
Johannes Kuhn

@Johannes Kuhn: Kesinlikle haklısın. Cevabı buna göre güncelledim ve dizi bildiriminde başka bir boş buldum.
not
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.