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


10

сьогодні (24 вересня) день народження компанії HONDA. Первісно їх назва компанії

本田技研工業株式会社

Хочу попросити зробити подарунок для HONDA. Завдання - зробити назву компанії друкувати програму. Ви можете це робити будь-яким способом, але є лише одне правило, Unicode заборонено. Це має бути мистецтво ASCII.

Я хочу попросити поштовий індекс і вихід. Як завжди, щоб визначити переможця, я погляну на довжину коду, проте портрет у цьому випадку також важливий.

EDIT: вихід повинен виглядати приблизно так:本田技研工業株式会社


Добре, то що ж заважає нам використовувати 'HONDA'та стверджувати, що вона друкує назву компанії в GolfScript? (Я просто намагаюся вказати на деякі лазівки). Крім того, це означає, що це позначається як код-гольф ?
Нестабільність

@ Нестабільність Я змінив ваш коментар.
ST3

Unicode is not allowedде? На виході (звучить розумно)? Як сценарій? Як внутрішнє представлення у вашому сценарії?
Йоганнес Кун

@JohannesKuhn Я мав на увазі, що жоден з друкованих символів не може бути UNICODE, в сценарії ви можете використовувати його, але вихід повинен бути на таблицях таблиць ASCII.
ST3

2
Технічні характеристики занадто розпливчасті, щоб дозволяти об'єктивно визначити, відповідає програма чи ні.
Пітер Тейлор

Відповіді:


20

Математика

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

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

Хонда

Внизу всі символи були розсіяні як єдине зображення. Зірочки в цьому випадку трохи складніше розпізнати як зірочки.

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

зображення2


Дуже, дуже приємно
доктор belisarius

Ого. Виглядає дуже добре. Однією з вимог був візуальний портрет, і ваше рішення має дуже високу якість цього, тому я приймаю вашу відповідь.
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

Я не видаю жодні символи unicode. Я просто сфотографую їх і віддам це як Ассії. Ну, ч / б.
Йоганнес Кун

Я міг би більше різних персонажів відображати відтінки. (Ціною розміру прогаму)
Йоганнес Кун

6

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

Багато ідей, натхнених відповіддю Остіна , але ця інтерактивна; ви можете змінити розмір шрифту! (також кількість символів насправді правильна)


Знімок екрана

Натискання кнопок -і +змінює розмір шрифту. Зображення відсікається, але ви отримуєте ідею.

зображення


Fiddle (спробуйте самі!)

Ось 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)на три байти коротше.
Conor O'Brien

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

@Doorknob я опублікував мінімізований підрахунок, змінив оновлення
професор Аллман

Ви можете видалити varоператори з forциклів і можете замінити (якщо хочете)"*" числом.
Conor O'Brien

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 символів за кожне використання).
Йоганнес Кун

@Johannes Kuhn: Ви абсолютно праві. Відповідно я оновив відповідь, а також знайшов ще одне зайве порожнє в декларації масиву.
пам’ятка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.