Dzisiaj (24 września) są urodziny HONDA [zamknięte]

10

dzisiaj (24 września) są urodziny firmy HONDA. Pierwotnie ich nazwa firmy to

本田技研工業株式会社

Chcę poprosić o prezent dla HONDA. Zadanie polega na tym, aby program drukował nazwę firmy. Możesz to zrobić w dowolny sposób, ale jest tylko jedna reguła, Unicode jest niedozwolony. Powinna to być sztuka ASCII.

Chcę poprosić o kod pocztowy i wyjście. Jak zawsze, aby ustalić zwycięzcę, przyjrzę się długości kodu, jednak portret w tym przypadku jest również ważny.

EDYCJA: dane wyjściowe muszą wyglądać podobnie do tego:本田技研工業株式会社

ST3
źródło
W porządku, więc co nas powstrzymuje przed używaniem 'HONDA'i twierdzeniem, że drukuje nazwę firmy w GolfScript? (Próbuję tylko wskazać pewne luki). Czy to ma być oznaczone jako golf golfowy ?
Zmienność
@ Lotność Zrobiłem edycję po twoim komentarzu.
ST3
Unicode is not allowedgdzie? Na wyjściu (brzmi rozsądnie)? Jako skrypt? Jako wewnętrzna reprezentacja w twoim skrypcie?
Johannes Kuhn
@JohannesKuhn Miałem na myśli, że żaden z drukowanych znaków nie może być UNICODE, w skrypcie można go używać, ale dane wyjściowe powinny znajdować się w znakach tabeli ASCII.
ST3
2
Specyfikacja jest zbyt ogólnikowa, aby umożliwić obiektywne określenie, czy program ją spełnia, czy nie.
Peter Taylor

Odpowiedzi:

20

Matematyka

Tutaj postacie są indywidualnie rasteryzowane. Zera danych binarnych obrazu zredukowanego są następnie zastępowane gwiazdkami, a następnie sama tablica jest drukowana.

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

Honda

Poniżej wszystkie postacie zostały zrasteryzowane jako pojedynczy obraz. W tym przypadku gwiazdki są nieco trudniejsze do rozpoznania jako gwiazdki.

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

zdjęcie 2

DavidC
źródło
Bardzo, bardzo miło
dr belisarius
Łał. Wygląda bardzo dobrze. Jednym z wymagań był portret wizualny, a twoje rozwiązanie ma bardzo wysoką jakość, dlatego akceptuję twoją odpowiedź.
ST3
11

Tcl

Prawdopodobnie szalone podejście.

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

Oto zrzut ekranu:

zrzut ekranu

Johannes Kuhn
źródło
Czy wyjście jest takie samo jak 本田技研工業株式会社?
ST3
No i nie wyglądają bardzo dobrze, ale w sumie dobre rozwiązanie.
ST3
Nie wyprowadzam żadnych znaków Unicode. Po prostu robię im zdjęcie i renderuję je jako Ascii. Cóż, czarno-biały.
Johannes Kuhn
Mógłbym wyświetlić więcej różnych postaci. (Kosztem wielkości progamu)
Johannes Kuhn
6

JavaScript + HTML, wersja interaktywna (275 + 90 = 365 znaków)

Wiele pomysłów inspirowanych odpowiedzią Austina , ale ta jest interaktywna; możesz zmienić rozmiar czcionki! (również liczba znaków jest właściwie poprawna)


Zrzut ekranu

Naciskanie przycisków -i +zmienia rozmiar czcionki. Obraz jest obcięty, ale masz pomysł.

wizerunek


Fiddle (spróbuj sam!)

Oto JSFiddle, w którym możesz sam uruchomić kod.


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>

Wersja w wysokiej rozdzielczości

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

wizerunek


Klamka
źródło
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)jest trzy bajty krótszy.
Conor O'Brien
4

JavaScript, 261 znaków, 226 min

Specjalne podziękowania dla jsacii za inspirację tego rozwiązania.

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

zminimalizowane

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

i wynik

             ****                                                ****        ****                                                                                ***  ***                ****        ****                           **                       ****                  ****         ****             
             ****               **************************       ****        ****          *****************************                                  ****   ***  ***   ****         ****    ********                          ********                 ******                 ****         ****             
             ****               **************************       ****        ****      *    ** ******* ****** ****** **    *************************       ****  ***  ***  ****          ****   **** ****                          **** *****             **********                ***         ****             
 ****************************   ****       ****       ****   ****************************     ****       ****   ****       ************************    ****************************  ***************************   ****************************        ******    ******        *************    ****             
  ***************************   ****       ****       ****   ***********     ****             ****       ****   ****                 ****                     ****      ****         ***************************   ****************************     *******        *******             ****     ****             
          *********             ****       ****       ****       ****        ****            ****        ****   ****                 ****               **************************      **********   ****                          ****          *****************************       *********************       
         ************           **************************       **** *****************     ****************************             ****               **************************      *************************    ******************          ****  ****************  *****      ****   **** **********       
       ***** **** ****          **************************       ******* ****      ****    ******  ********************              ****                 **********************       **************************    ******************                                           *******       ****             
      *****  ****  *****        ****       ****       ****   ********    *****   *****    *******  ***   ****   ****                 ****                 **********************      *******      ********               ****      ****         ****************************  *************    ****             
   ******    ****    ******     ****       ****       ****   ********      **** ****       * ****  ***   ****   ****                 ****              **************************** *********     ***********             ****      ****           *      ****     *      **   **** *** ****    ****             
 *****************************  ****       ****       ****       ****       *******          ****  ***  ****    ****                 ****              ****************************  **  ****   ********* *****           ****     * ****   ***          ****    *****              ***         ****             
 ****   *    ****        ****   ****       ****       ****       ****      *********         ********* *****    ****     ****************************        ****************            **********  ****  ******         *********** ****  ****        ****       *****            ***         ****             
             ****               **************************       ****  *******  *******      **************     ****     ****************************  **********  ****  ***********     ********    ****    ****  **************      ********    ***********************          ***  *******************     
             ****               ****                  ****   **************        *******   ****    *****      ****                                   ******      ****       *****      ****        ****           ***                 ******    ****************     *****       ****  *******************     
             ***                                                 *                     *              **         **                                                ****                  ****         ***                                                               **          ***                          
Profesor Allman
źródło
Myślę, że pierwsza linia wyjściowa powinna zostać naprawiona.
ST3
To było po wklejeniu do edytora, naprawione w edycji
Professor Allman
Według mnie to 261 znaków ...
Klamka
@Doorknob opublikowałem zminimalizowaną liczbę, zmienioną w aktualizacji
Professor Allman
Możesz usunąć varinstrukcje z forpętli i możesz zastąpić (jeśli chcesz) "*"liczbą.
Conor O'Brien
1

Java, 267 260 znaków

W porządku, wydaje mi się, że moje rozwiązanie nie różni się tak bardzo od odpowiedzi Johannesa Kuhna, ale wydaje się, że jest to problem, który można ładnie rozwiązać w Javie; moje rozwiązanie nie trwa długo; a wynik jest nieco inny, mimo to opublikuję:

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

Sformatowany jako:

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

Wynik:

      #                     #     #                                   # #        #  # #                       #         #    #    
      #       ###########   #     #     #### #######                # # # #      #  # #            # ##      # #        #    #    
 ###########  #    #    #   #  ########   #   #  #    ##########  # # # # # #    #  ######         #       ##   ##    #####  #    
      #       #    #    # ####    #      #    #  #        #       ###########  ### #  #     ############  #       #       #  #    
     ###      #    #    #   #     #      #    #  #        #          #   #       #    #            #     # ######  ##    #  ##### 
    # # #     ###########   #  #######   ### #######      #       ###########   ### #######  ##### #                    #    #    
   #  #  #    #    #    #   ##  #   #   ## #  #  #        #        #########   # #    #        #   #                   ###   #    
  #   #   #   #    #    # ###    #  #    # #  #  #        #            #       # #   ###       #    #    ###########  # # #  #    
 #  #####  #  #    #    #   #    # #     # #  #  #        #       ###########  # #  # # #      #    #        #          #    #    
 #    #     # #    #    #   #    ###     ### #   #        #          # # #       # #  #  #     # ## #  #    #   #       #    #    
      #       ###########   #  ##   ##   # # #   #   ###########   ##  #  ###    # #  #   # #####    # #    #    #      # ####### 
      #       #         # ##  #       #      #   #                #    #     #   #    #               #  ######## ##    #         
notatka
źródło
@Bakuriu Użyj innej czcionki. @ memo: możesz zapisać 6 znaków NIE importując. (import kosztuje 36 znaków, przy użyciu pełnej nazwy kwalifikowanej kosztuje 15 znaków dla każdego zastosowania).
Johannes Kuhn
@Johannes Kuhn: Masz absolutną rację. Odpowiednio zaktualizowałem odpowiedź, a także znalazłem inny zbędny pusty w deklaracji tablicy.
notatka