Hôm nay (24 tháng 9) là sinh nhật của HONDA [đóng cửa]


10

hôm nay (24 tháng 9) là sinh nhật của công ty HONDA. Ban đầu tên công ty của họ là

本田技研工業株式会社

Tôi muốn yêu cầu làm một món quà cho HONDA. Nhiệm vụ là làm cho chương trình in tên công ty. Bạn có thể làm theo bất kỳ cách nào bạn muốn, nhưng chỉ có một quy tắc, Unicode không được phép. Nó phải là nghệ thuật ASCII.

Tôi muốn yêu cầu gửi mã và đầu ra. Như mọi khi để xác định người chiến thắng tôi sẽ xem xét độ dài của mã, tuy nhiên chân dung trong trường hợp này cũng rất quan trọng.

EDIT: đầu ra phải trông giống như thế này:本田技研工業株式会社


Được rồi, vậy điều gì ngăn chúng ta sử dụng 'HONDA'và tuyên bố nó in tên công ty trong GolfScript? (Tôi chỉ đang cố gắng chỉ ra một số sơ hở). Ngoài ra, điều này có nghĩa là được gắn thẻ là golf-code ?
Biến động

@Volatility Tôi đã chỉnh sửa sau khi nhận xét của bạn.
ST3

Unicode is not allowedỞ đâu? Ở đầu ra (nghe có vẻ hợp lý)? Là kịch bản? Là đại diện nội bộ trong kịch bản của bạn?
Julian Kuhn

@JohannesKuhn Ý tôi là không có ký tự in nào có thể là UNICODE, trong tập lệnh bạn có thể sử dụng nó nhưng đầu ra phải nằm trên bảng mã ASCII.
ST3

2
Thông số kỹ thuật quá mơ hồ để cho phép xác định khách quan xem chương trình có đáp ứng hay không.
Peter Taylor

Câu trả lời:


20

Toán học

Ở đây các nhân vật được rasterized cá nhân. Số 0 của dữ liệu ảnh nhị phân của ảnh bị giảm sau đó được thay thế bằng dấu hoa thị và sau đó chính mảng đó được in.

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

Honda

Bên dưới tất cả các nhân vật được rasterized như một hình ảnh duy nhất. Dấu hoa thị khó hơn một chút để nhận ra là dấu hoa thị trong trường hợp này.

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

hình ảnh 2


Rất, rất hay
Tiến sĩ belisarius

Ồ Nhìn rất tốt. Một trong những yêu cầu là chân dung trực quan và giải pháp của bạn có chất lượng rất cao, vì vậy đó là cách tôi chấp nhận câu trả lời của bạn.
ST3

11

Tcl

Chà, một cách tiếp cận có lẽ điên rồ.

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

Đây là một ảnh chụp màn hình:

ảnh chụp màn hình


Có đầu ra giống như 本田技研工業株式会社?
ST3

Chà trông không được tốt lắm, nhưng tất cả đều là giải pháp tốt.
ST3

Tôi không xuất bất kỳ ký tự unicode nào. Tôi chỉ chụp một bức ảnh của họ và vẽ nó như là Ascii. Vâng, b / w.
Julian Kuhn

Tôi có thể nhiều nhân vật khác nhau để hiển thị sắc thái. (Với chi phí của kích thước progam)
Johannes Kuhn

6

JavaScript + HTML, phiên bản tương tác (275 + 90 = 365 ký tự)

Nhiều ý tưởng lấy cảm hứng từ câu trả lời của Austin , nhưng ý tưởng này có tính tương tác; bạn có thể thay đổi kích thước phông chữ! (cũng là số lượng nhân vật thực sự chính xác)


Ảnh chụp màn hình

Nhấn -+nút thay đổi kích thước phông chữ. Hình ảnh bị cắt bỏ, nhưng bạn có được ý tưởng.

hình ảnh


Fiddle (hãy tự thử!)

Đây là một JSFiddle nơi bạn có thể tự chạy mã.


Mã số, 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>

Phiên bản độ phân giải cao

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

hình ảnh



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)ngắn hơn ba byte.
Conor O'Brien

4

Javascript, 261 ký tự, 226 rút gọn

đặc biệt cảm ơn jsacii đã truyền cảm hứng cho giải pháp này.

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

giảm thiểu

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

và đầu ra

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

Tôi nghĩ rằng dòng đầu ra nên được cố định.
ST3

Đó chỉ là từ việc dán vào trình chỉnh sửa, được sửa trong chỉnh sửa
Giáo sư Allman

Đó là 261 ký tự, theo tính của tôi ...
Doorknob

@Doorknob tôi đã đăng số lượng rút gọn, thay đổi trong bản cập nhật
Giáo sư Allman

Bạn có thể xóa các varcâu lệnh khỏi các forvòng lặp và bạn có thể thay thế (nếu bạn muốn) "*"bằng một số.
Conor O'Brien

1

Java, 267 260 ký tự

Được rồi, tôi đoán giải pháp của tôi không khác mấy so với câu trả lời của Julian Kuhn, nhưng dường như đây là một vấn đề có thể được xử lý độc đáo trong Java; giải pháp của tôi không còn lâu nữa; và đầu ra hơi khác nhau, tuy nhiên tôi sẽ đăng 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":"")));}}

Định dạng là:

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 ra:

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

@Bakuriu Sử dụng một phông chữ khác nhau. @ ghi nhớ: bạn có thể lưu 6 ký tự bằng cách KHÔNG nhập. (nhập chi phí 36 ký tự, sử dụng tên đủ điều kiện có giá 15 ký tự cho mỗi lần sử dụng).
Julian Kuhn

@Johannes Kuhn: Bạn hoàn toàn đúng. Tôi đã cập nhật câu trả lời tương ứng và cũng tìm thấy một khoảng trống dự phòng khác trong khai báo mảng.
ghi nhớ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.