Сегодня (24 сентября) день рождения HONDA [закрыто]


10

Сегодня (24 сентября) день рождения компании HONDA. Первоначально их название компании

本田技研工業株式会社

Я хочу попросить сделать подарок для HONDA. Задача программы - напечатать название компании. Вы можете сделать это любым способом, но есть только одно правило, Unicode не допускается. Это должно быть искусство ASCII.

Я хочу попросить опубликовать код и вывод. Как всегда, чтобы определить победителя, я посмотрю на длину кода, однако портрет в этом случае также важен.

РЕДАКТИРОВАТЬ: выходные данные должны выглядеть примерно так:本田技研工業株式会社


Хорошо, так что же мешает нам использовать 'HONDA'и утверждать, что это печатает название компании на GolfScript? (Я просто пытаюсь указать на некоторые лазейки). Кроме того, это должно быть помечено как код-гольф ?
Волатильность

@Volatility Я сделал изменения после вашего комментария.
ST3

Unicode is not allowedгде? На выходе (звучит разумно)? Как скрипт? Как внутреннее представление в вашем скрипте?
Йоханнес Кун

@JohannesKuhn Я имел в виду, что ни один из напечатанных символов не может быть UNICODE, в скрипте вы можете использовать его, но вывод должен быть в табличных символах ASCII.
ST3

2
Спецификация слишком расплывчата, чтобы позволить объективно определить, соответствует ли программа ей или нет.
Питер Тейлор

Ответы:


20

Mathematica

Здесь персонажи индивидуально растрированы. Нули двоичных данных изображения уменьшенного изображения затем заменяются звездочками, а сам массив затем печатается.

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

Honda

Ниже все символы были растеризованы как одно изображение. В этом случае звездочки немного сложнее распознать как звездочки.

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

image2


Очень, очень приятно
доктор Велизарий

Ух ты. Выглядит очень хорошо. Одним из требований был визуальный портрет, и ваше решение имеет очень высокое качество, поэтому я принимаю ваш ответ.
ST3

11

Tcl

Ну, наверное, сумасшедший подход.

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

Вот скриншот:

Скриншот


Вывод такой же как 本田技研工業株式会社?
ST3

Ну и выглядят не очень хорошо, но в целом хорошее решение.
ST3

Я не выводил никаких символов Юникода. Я просто фотографирую их и представляю как Ascii. Ну, ч / б.
Йоханнес Кун

Я мог бы больше разных персонажей для отображения оттенков. (За счет размера программы)
Йоханнес Кун

6

JavaScript + HTML, интерактивная версия (275 + 90 = 365 символов)

Многие идеи вдохновлены ответом Остина , но этот является интерактивным; Вы можете изменить размер шрифта! (также правильное количество символов)


Скриншот

Нажатие -и +кнопки изменения размера шрифта. Изображение обрезано, но вы поняли идею.

образ


Скрипка (попробуй сам!)

Вот 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>

Версия с высоким разрешением

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

образ



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)на три байта короче.
Конор О'Брайен

4

Javascript, 261 символов, 226 минимизированных

отдельное спасибо Jsacii за вдохновляющее решение.

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

Минимизированный

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

и выход

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

Я думаю, что первая строка вывода должна быть исправлена.
ST3

Это было только из вставки в редактор, исправлено в редакторе
Профессор Оллман

По моим подсчетам, это 261 персонаж ...
Дверная ручка

@ Doorknob я опубликовал минимизированный счет, измененный в обновлении
Профессор Оллман

Вы можете удалить varоператоры из forциклов и заменить (если хотите) "*"числом.
Конор О'Брайен,

1

Java, 267 260 знаков

Хорошо, я думаю, что мое решение не сильно отличается от ответа Йоханнеса Куна, но, как кажется, это проблема, которая может быть хорошо решена в Java; мое решение не намного дольше; и вывод немного отличается, я все же выложу:

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

Отформатировано как:

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

Вывод:

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

@Bakuriu Используйте другой шрифт. @ памятка: вы можете сохранить 6 символов, НЕ импортируя. (импорт стоит 36 символов, полное имя стоит 15 символов за каждое использование).
Йоханнес Кун

@ Йоханнес Кун: Вы абсолютно правы. Я соответствующим образом обновил ответ, а также обнаружил еще одну лишнюю пробел в объявлении массива.
памятка
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.