ASCII 아트“Hello-World!”[닫힘]


39

당신의 목표는 "Hello-World!"를 출력하는 가장 짧은 프로그램을 작성하는 것입니다. ASCII 예술로.

규칙 :

  • 사람이 읽을 수 있어야합니다. 크기 (콜 / 행)에 대해서는 신경 쓰지 않습니다.
  • 출력에는 공백 ( ""), 샤프 ( "#") 및 줄 바꿈 만 포함해야합니다.
  • 출력은 고정 폭 글꼴로 작동해야하지만 문자는 고정 폭 글꼴을 사용할 필요는 없습니다.
  • 결과적으로, 각 문자는 최소한 하나의 공백으로 서로 분리되어야합니다

코드의 언어와 바이트 수로 제목을 추가하십시오.


5
bash: 33 자 – pastebin.com/HZ1w8z8g 허용됩니까?
manatwork

4
왜 하이픈인가? ...
Timwi

1
HQ9 +와 같이 미리 정의 된 것을 사용하는 것이 불가능하거나 어려울 것으로 생각합니다.
manatwork

1
@PeterTaylor : 공백과 해시로 구성된 출력은 고정 폭 글꼴로 작동해야하지만 많은 해시로 표시되는 문자의 너비가 모두 같을 필요는 없습니다.
Timwi

답변:


18

나는 이것을 절대적으로 즐겼다

Perl, 126116114102102   87 87 (69) 문자 (아스키 전용 및 외부 글꼴 없음)

현재 외부 글꼴을 사용하지 않는 가장 짧은 ASCII 솔루션입니다.

글쎄, 나는 우아한 해결책을 제시하고 싶었지만 @Ilmari Karonen은 나에게 도전했다 unpack.

92 88 69 문자 코드는 @Ilmari Karonen의 것과 동일한 못생긴 읽을 수없는 출력을 생성합니다.

say map{y/01/ #/r}unpack"((b6)7a)*",'eT@j@DE
UUBjdeE
wTujjTA
eUBTddE'

압축을 풀지 않는보다 세련된 변형 (88 자) :

map{print$"x$_,$/x/4/,"#"x!/7/}7&ord,7&ord>>3for'HRyYOKLIIjIRHBa@AJIAIIIJaQHQNSRH'=~/./g

그러나 나는 그런 |. | e || .- |||., d! Hello-World와 비슷한 것은 아무것도 아닙니다! 허용되지 않아야하므로 실제 해결책은 여기에 있습니다-변형 변형, 87 문자 :

say map{y/01/ #/r}unpack"((b6)9a)*",'E`D@HB@Hd
EcD@HB@Hd
ggDsIbaIf
e`dDhRRHE
ECICPaQPf'

산출:

여기에 이미지 설명을 입력하십시오

98 자에서보다 우아한 변형 :

map{print$"x$_,$/x/1/,"#"x!/7/}7&ord,7&ord>>3for'PW{nw^QD[w}vK@X@PcP@jCDjXQk[rRRbSQD\CWbXeX'=~/./g

산출:

여기에 이미지 설명을 입력하십시오

이전 솔루션 (114 자), 다른 유형의 코딩 :

print'#'x(3&ord),$"x($:=15&ord>>2),$/x!$:for'EmM}U}]MBEQSM}U}]MBOFNMQOKUMSKUOBEM]MMM]IIIMIUQIAEQWMMgFROYQOB'=~/./g

산출:

여기에 이미지 설명을 입력하십시오


마지막에 느낌표를 잊어 버렸습니다. 즉, Hello-World! 또한 소문자 여야 e하지만 5 픽셀 높이의 글꼴로 읽을 수 있도록 대문자를 사용

47

자바 스크립트, 178 바이트

c=document.createElement("canvas").getContext("2d");c.fillText("Hello-World!",0,7);d=c.getImageData(1,0,56,7).data;s="";for(i=3;i<1568;i+=4){s+=d[i]?"#":" ";s+=(i+1)%224?"":"\n"}

Firefox 27 Scratchpad에서 작동합니다.

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

나는 Arial을 인정한다 : -D
Timwi

4
이것은 내가 가장 좋아하는 것입니다. 흥미로운 방법을 사용하여 솔루션에 도달했습니다. 훌륭한!
Darth Egregious

2
독창적 인, 난 당신이 방금 JavaScript를 위해 Figlet을 만들었다 고 생각합니다;)
WallyWest

Dagnammit, 이것도 나의 첫번째 생각이었다! 여기에 공감대가 있습니다. :)
Jordan Gray

37

매스 매 티카 101 99 98

이것은 표현을 래스터 화하고, 이진 이미지 데이터를 획득하고, 각각 1을 "#"로, 각각 0을 ""(빈 공간)으로 변환하고 출력을 12 x 130 문자 그리드로 표시합니다.

GraphicsGrid[ImageData@ImageResize[Binarize@Rasterize@Style["Hello-World!",99],130] 
  /.{1→"",0→"#"}]

여보세요

Jonathan Van Matre 덕분에 한 캐릭터가 절약되었습니다.


1
l의 두께가 왜 다른가?
MrZander

나는 표현에 대한 래스터 화를 단일 이미지로 수행했습니다. 편지로 편지를 썼다면, l은 동일했을 것입니다. 또한 래스터 화 격자 크기를 늘리면 출력물이 인쇄 된 문자의 품질에 근접하는 경향이 있습니다. 그러나 더 큰 격자는 단순한 픽셀 인 것처럼 보일 정도로 "#"이 상대적으로 작습니다. 문제는 여전히 남아 있습니다. 왜 이미지의 2 l이 다른 가중치를 받습니까?
DavidC

3
@MrZander, 이것이 글꼴이 암시하는 바로 그 이유입니다 : 글꼴을 ASCII 아트 나 화면 스템 너비와 같이 저해상도 픽셀 격자에 맞추려고 할 때 글꼴에 모든 크기의 전체 픽셀 너비 스템을 가질 수 없기 때문에 글꼴 너비가 절대로 일정하지 않습니다 . 여기에 사진과 함께 좋은 설명입니다.
Joey

1
아마 최고의 모습
Ronan Dejhero

1
조나단 반 매터, 고마워 첫 번째 매개 변수는 99로 줄어들 수 있지만 출력 품질로 인해 두 번째 매개 변수는 줄이고 싶지 않습니다. (이것은 코드 골프 도전이라는 것을 알고 있지만 자부심을 가지고 있습니다.)
DavidC

25

델파이 85 바이트

var s:tstringlist;begin s:=tstringlist.Create;s.LoadFromFile('\a');Write(s.Text);end.

가장 좋은 해결책은 아니지만 외부 리소스를 사용할 수 없다는 규칙은 없었습니다.
결과: 결과


12
포 그라운드가 아닌 배경으로 #을 사용하는 창의력 +1
gerrit

1
TStrings대신을 선언 할 수 있습니다 . (하지만 인스턴스화를 계속 유지하십시오 TStringList.)
manatwork

실제로 델파이와 함께 제공되는 파일에서로드중인 파일입니까, 아니면 직접 작성 했습니까? 후자의 경우, 길이를 점수의 일부로 계산해야한다고 생각합니다.
Ilmari Karonen

@Ilmari, 나는 델파이가 "Hello-World"ASCII art 파일을 제공하지 않을 것이라고 확신한다 :) 또한 대답에 설명되어 있으며 외부 리소스를 사용한다.
TLama

3
@TLama : 나도 그렇게 가정했는데, 그냥 정중하게 표현하려고했습니다. 내 요점은, 것입니다 경우에도 외부 자원이 허용되었다,이 프로그램이 여전히 (사실, 우리는 더 없다, 그 저자를 제외하고 다른 사람의 컴퓨터에 실패 증거 조차 자신의 컴퓨터에서 작동을). 또한 다음 Perl 스크립트를 사용하여 그의 점수를 이길 수 있습니다 do X. "외부 리소스"의 내용은 X지정되지 않은 채로 남아 있지만 (충분하지 않습니까?) 아래에 몇 가지 가능한 제안을 제시했습니다.
Ilmari Karonen

15

Perl 5, 54 바이트 / 71 개의 인쇄 가능한 ASCII 문자

참고 : 이 답변의 두 번째 버전입니다. PHP 및 gzinflate ()를 사용하는 원래 64 바이트 / 95 문자 버전 은이 답변의 기록을 참조하십시오 .

다음은 71 자 인쇄 가능한 ASCII 버전입니다.

y/01/ #/,say for unpack'(B40)4',unpack u,'4I*`1`(JJI!$FFNRJU52HIJ0*))H'

54 바이트 버전에는 인쇄 할 수없는 문자가 포함되어 있으므로 16 진 덤프로 제공하고 있습니다. Unixish 시스템에서는 xxd -r16 진 덤프를 실행 가능한 Perl 스크립트로 되돌릴 수 있습니다 .

0000000: 792f 3031 2f20 232f 2c73 6179 2066 6f72  y/01/ #/,say for
0000010: 2075 6e70 6163 6b27 2842 3430 2934 272c   unpack'(B40)4',
0000020: 27a4 a011 008a aaa4 1126 9aec aad5 54a8  '........&....T.
0000030: a6a4 0a24 9a27                           ...$.'

perl -M5.010Perl 5.10+ say기능 을 사용하려면 둘 다 함께 실행해야 합니다. 다음과 같은 출력을 생성합니다.

"Hello-World!"의 스크린 샷  ASCII 아트

(SE의 거대한 행 높이는 ASCII 아트를보기 흉하고 읽기 어렵 기 때문에 스크린 샷으로 표시됩니다. 소문자 "e"는 다소 어색하지만 간신히 읽을 수있는 것으로 간주됩니다.)


추신. 위의 솔루션 출력이 너무 미니멀하다고 느껴지면 Tomas의 솔루션 과 비슷한 출력을 생성 하는 92 자 변형이 있습니다 .

y/01/ #/,say for unpack'(B56)*',unpack u,'CH!(`"(`"":,2``B``@GGDC\'(C#(YI!)("I)"2*,),`4,03D'

스크린 샷은 다음과 같습니다.

"Hello-World!"의 스크린 샷  ASCII 아트


추신. 내가 확신 ( GolfScript, 51 개 문자는 당신이 사람을 계산하지 않는 경우) 가장 짧은 인쇄-ASCII 솔루션이며, 그 바로 호출 배너 / FIGLet 또는 다른 방법으로 그 속임수 :

'iJ@Q@HmURBIMM{JkUUJeMRAQIM'{2base(;{' #'=}/}%39/n*

출력은 위의 71-char Perl 솔루션과 동일합니다.


나는 당신이 가독성의 경계를 넘었다 고 말하고 싶습니다 :-)
Tomas

1
여기에 큰 줄 간격이 있기 때문에 SE에서 여기보다 터미널에서 훨씬 더 읽기 쉽습니다.
Ilmari 카로 넨

어쨌든 읽을 수 없습니다. BTW 나는 외부 압축 알고리즘없이 92 자로 출력을 생성 할 수 있습니다 :-)
Tomas

@ Tomas : 당신이 맞아, 압축은 여기에 답이되지 않는 것 같습니다. 내가 아직하지 않았다면 당신에게 +1을 줄 것입니다. BTW, 나는 71 문자로 할 수 있습니다; 위 참조. :-)
Ilmari Karonen

1
Ilmari, 당신은 나에게 도전하지 말아야했습니다 unpack:-) 69 문자의 해결책을 찾았습니다 (87은 좋은 결과를 얻었습니다).
Tomas

8

셸 + 무화과 (35)

$ figlet -w 90 -f banner Hello-World!
#     #                                   #     #                             ### 
#     # ###### #      #       ####        #  #  #  ####  #####  #      #####  ### 
#     # #      #      #      #    #       #  #  # #    # #    # #      #    # ### 
####### #####  #      #      #    # ##### #  #  # #    # #    # #      #    #  #  
#     # #      #      #      #    #       #  #  # #    # #####  #      #    #     
#     # #      #      #      #    #       #  #  # #    # #   #  #      #    # ### 
#     # ###### ###### ######  ####         ## ##   ####  #    # ###### #####  ### 

어떤 글꼴입니까? 그것들은 더 작은 대문자처럼 보입니다.
Cruncher

배너 -f banner입니다 * 또는 * 대신 |를 사용한 첫 번째 글꼴입니다. _.
grim


"90"을 "9"로 변경하면 키가 크고 날씬한 hello world가 생성되지만 OP는 열이나 행을 신경 쓰지 않기 때문에 허용됩니다.
alexyorke

때때로 유권자들이 저를 당황시킵니다. 어떻게 이것이 순점 +8을 얻습니까? 하지만 다른 무화과 대답 은 순 점수 -3을 얻습니까?
Digital Trauma

8

파이썬 260 215 186 152

>>> print'eJyNkFEKwDAIQ/93isC7/x3LyIJullHrR1BfJSIJPUHTlmiUPHbxC7L56wNCgZAxv3SjDWIxsoOb\nzMaBwyHYPJ5sVPNYxXism74vcIsFZlYyrg=='.decode('base64').decode('zip')
#   #        #  #          #   #   #          #     #  #
#   #        #  #          #  # #  #          #     #  #
#   #   ##   #  #   ##      # # # #   ##   ## #   ###  #
#####  #  #  #  #  #  #     # # # #  #  #  #  #  #  #  #
#   #  ####  #  #  #  # ##  # # # #  #  #  #  #  #  #  #
#   #  #     #  #  #  #     # # # #  #  #  #  #  #  #   
#   #   ###  #  #   ##       #   #    ##   #  #   ###  #

파이썬 196 183130114 (그러나 추악한)

>>> print'eJxTVlBWgCAgAQHKqBywAJeyAgJCZREcZWUYyaUMIpUVEKqRNcLEueDqEaZBLVVWQDITADIdFBw='.decode('base64').decode('zip')
# #  #  # #        # # #        #   # #
# # # # # #  #     # # #  #  ## #  ## #
### ##  # # # # ## # # # # # #  # # #
# #  ## # #  #      # #   #  #  #  ## #

base64 인코딩에서 압축 데이터를 사용했습니다. 코드는 base64 인코딩에서 디코딩 한 다음 압축을 해제합니다.


와, 정말 가독성이 좋아!

7

PHP — 183 바이트

sebcap26의 ASCII 아트를 소스로 사용 ...

foreach(str_split(base64_decode('iASAERACCYgEgBKQAgmIxIwKoxo5+SSSCqSSSYnkksqkkkmJBJIKpJJIiOSMBEMSOQ'))as$i=>$j)echo strtr(sprintf("%8s%s",decbin(ord($j)),($i+1)%7?"":"\n"),'01',' #');

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

6

Brainfuck, 372 바이트

(알지만. 완벽 함을 위해서, 멍청이가 있어야합니다 ^^ 반복이 적기 때문에 훨씬 짧아지지 않을 것입니다. 첫 번째와 두 번째 줄 루프는 이미 ...)

++++++++[>++++>++++<<-]>+++>>++++++++++>>+>++[-<<<<<.>.<.>..>>>[-<<<.>>>]<[-<<<.>>>]<<..<.>>>++[-<<.<.>..........<.>....>>]<<<.>.<.>>.>+>>]<<<<<...>.<.>.<.>.<.>.<.>..<..>..<...>.<.>..<.>..<.>..<..>...<..>.<.>..<...>.<.>>.<<.>.<.>.<.>...<.>.<.>.<.>..<.>.....<.>.<...>.<.>.<.>..<.>.<.>...<.>.<.>..<.>>.<<.>.<.>.<...>.<.>.<.>..<..>.......<..>.<..>...<..>..<.>...<.>..<..>..<.

통역사 : http://koti.mbnet.fi/villes/php/bf.php


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

@ASKASK의 숫자 생성기 및 이미지와 루프 및 추가 튜닝을 결합하면 다음과 같은 이점이 있습니다.

Brainfuck, 343 3336336334 바이트

그래도 원래 버전보다 못 생겼습니다.

+++++[->++++++>+++++++>++<<<]>++>>>+>>++[-<<<<.<.>.<..>>>[-<<<.>>>]>[-<<<.>>>]<<<<..>.<.>>>++[-<<.<.........>.<...>>>]<<.<.>.>.>>+>]<<<<..<<+++++[->>.<.<]>.>.<..>...<.>.<.>.<.>.<..>.<...>..<.>.<..>..<.>.>.<.<.>.<.>.<...>.<.>.<.>.<.>.<.....<++++++[->>.<.<]>..>.<.>.<.>.>.<.<.>.<..>.<..>.<.>.<..>.<.......>...<...>.<..>.<...>.<..>.<..>.

(이미지는 @ASKASK의 답변을 참조하십시오)


5

ECMA 스크립트 (6) 172 161

'¡I%e!c0ĄJ¥eìo0¸ËefMs0µKcÊIs0´Ê¢1éo'.split(0).map(s=>s.split('').map(c=>{for(i=8,s='';i--;)s+=(c.charCodeAt(0)-33)&(1<<i)?'#':' ';return s;}).join('')).join('\n')

산출:

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

설명:

ASCII 텍스트는 각 비트가 픽셀을 나타내는 문자열로 압축됩니다 .

  • 0 ...에 대한 SPACE
  • 1 ...에 대한 #

인쇄 가능한 문자 만 얻기 위해 오프셋 33이 적용됩니다.


첫 번째 팻 화살표 기능의 괄호와 return설명은 필요하지 않습니다.
manatwork

@manatwork 나는 그것을 제거하려고했지만 더 이상 컴파일되지 않았습니다. 확실합니까?
Florent


@manatwork 감사합니다!
Florent

charCodeAt(0)감소charCodeAt().
Chiru

4

클리핑 , 38 자 (76 바이트)

갦륈똄릵꺕녔꺒녪냕녪낷뚕년꺒녦냉괄낵要감嚙긂밃⓶掘⓶終丟併껧뜴꼧밍替現겠合終

산출:

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

4
코드 골프 정보 페이지에 "유니 코드를 사용하는 경우 바이트 수는 UTF-8을 사용해야합니다."라고 표시됩니다. 내가 실수하지 않으면 프로그램 길이가 114 바이트가 됩니다. (당신이 언급 한 76 바이트는 BOM이없는 UTF-16을위한 것입니다.)
res

@res : 그것을 요구하는 것은 말이되지 않기 때문에 그것을 바꿨습니다. 내 Sclipting 인터프리터는 UTF-16을 잘 이해하므로 UTF-16으로 인코딩 된 유효한 프로그램입니다.
Timwi

1
Timwi, 사건이 중요합니다
Tomas

3
@ user689-실제로 "Hello-World!" 끝에 느낌표와 함께 ...

1
나는 "커뮤니티에 의해 받아 들여진다"는 것은 " 커뮤니티 토론 없이도 그렇게 할 힘이있는 소수의 사람들에 의해 받아 들여진다"는 것을 의미한다고 생각한다 .
res

3

Brainfuck, 362 바이트

미안 @ johannes-h, 나는 당신을보고 내 자신을 만들 영감을 받았습니다. 처음에는 빠른 숫자 생성과 간단한 그림을 조합하여 더 적은 바이트로 결과를 생성합니다. 그러나 다른 곳에서는 루프를 사용하지 않으므로 최적화해야합니다.

+++++[->++++++>+++++++>++<<<]>++>.<.>.<.....>.<.>.<.........>.<...>.<.........>.<...>.<.>.>.<.<.>.<..>.<..>.<.>.<.........>.<...>.<.........>.<...>.<.>.>.<...<.>.<.>.<.>.<.>.<..>.<..>...<.>.<.>.<.>.<..>.<...>..<.>.<..>..<.>.>.<.<.>.<.>.<...>.<.>.<.>.<.>.<.....>.<.>.<.>.<.>.<.>.<.>.<...>.<.>.<.>.>.<.<.>.<..>.<..>.<.>.<..>.<.......>...<...>.<..>.<...>.<..>.<..>.

어떤 생성 :

그림


흠. 숫자 생성이 얼마나 짧습니까? '이미지를 바꾸는 것이 나에게 바람을 피우는 것처럼 보이기 때문에 (적어도 우리의 솔루션을 직접 비교할 때-물론이 콘테스트에서 완벽하게 유효합니다) ^^ 그러나 나중에 나중에 당신을 살펴볼 것입니다. 그러나 두 줄. 훨씬 짧습니다 (정확하게 기억하면 약 10-20 바이트)
Johannes H.

버전을 343 바이트로 줄
.

더 많은 반복을 루프로 대체하여 더 짧습니다. 지금 339
Johannes H.

나는 당신에 대해 언급할만한 평판이 없지만 새로운 버전을 자세히 보면 거기에 "> <"가있어 2 바이트를 제거 할 수 있습니다 :)
ASKASK

3

ImageMagick + sed, 71 바이트

다른 ImageMagick 항목이 표시되지 않으므로 여기에 내 지분이 있습니다.

convert +antialias label:Hello-World! xpm:-|sed '8,+9y/ /#/;s/[^#]/ /g'

나는 그 sed부분이 더 골프를 칠 수 있다고 생각한다 .

온라인으로 사용해보십시오 .

산출:

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


2

포스트 스크립트, 154 133

<~GasbQ8I>GO#QsOD7:?,pa&5XCgo@jeLPX:a4F9kN1nu1B@8KjD"^]WgY[MA.2VBjpTNo5$Pi%uI9Lr>,9`~>/FlateDecode filter 999 string readstring pop =

    <~GasbQ8I>GO#QsOD7:?,pa&5XCgo@jeLPX:a4F9kN1nu1B@8KjD"^]WgY[MA.2VBjpTNo5$Pi%uI
9Lr>,9`~>
/FlateDecode filter 
999 string readstring pop 
=

ASCII 전용 소스, ASCII 예술에 대한 영감은 Johannes H.의 답변입니다 :-)

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

(터미널에서 더 읽기 가능)

펄, 102

print$-%44?'':"\n",vec(unpack(u,'<!040`A!:4@`A`*%7918REEM1":T4)75E(#&1"0``'),$-++,1)?'#':' 'for 0..219

위와 동일한 출력. 위의 두 Perl 답변을 모두 잃어 버렸지 만 어쨌든 게시합니다. 적어도 나는 시도했고 올바른 방향으로 움직이고 있었고 (최단 답변을 보지 못했습니다 :-).


2

Pure Bash, 외부 유틸리티 없음-133 자 :

c=" #";for x in 0x{5250088045,55520A914D,74556AAA54,535205124D};do while((s=(t=x)^(x/=2)*2,t));do L=${c:s:1}$L;done;echo "$L";L=;done

오른쪽 및 왼쪽 이동 (2로 나누기 및 곱하기) 및 xor를 사용하여 한 비트를 찾습니다.

Blender / Ilmari Karonen에서 도난당한 글꼴 데이터.

Bash 3.2 및 4.2에서 테스트

그건 그렇고, 이것은 단지 166 자입니다 :

echo "# #  #  # #        #   #        #   # #
# # # # # #  #     # # #  #   # #  ## #
### #   # # # # ## # # # # # #  # # #  
# #  ## # #  #      # #   #  #  #  ## #"

1

파이썬 3, 114

print('\n'.join(bin(x)[2:]for x in[353530052677,366448644429,499649260116,357858349645]).translate({48:32,49:35}))

출력 ( @Ilmari Karonen 에서 4 자 길이의 eW 도난 ) :

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

그리고 더 짧은 것 (107) :

print('\n'.join(bin(x)[2:]for x in[11993933918769,16391913257513,12021315382193]).translate({48:32,49:35}))

산출:

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

대부분 읽을 수 없습니다. 두 번째 출력에서 ​​당신의 세계는 실제로 Uorld입니다.
Silviu Burcea

@SilviuBurcea : 실제 터미널 에뮬레이터에서 더 좋아 보입니다. 또한 "인간 판독 가능"은 약간의 흔들림 공간을 제공합니다. "HELLO ⊔ORLD!"가 무엇인지 짐작할 수있을 것입니다. 방법.
Blender

16 진 상수를 사용하고 몇 글자를 줄이십시오
Floris

@ 플로리스 : 나는 그것을 시도했다. 두 문자 접두어는 약 20 자리까지 길어집니다.
Blender

1

Python 154 자 (Char 5X7 크기)

print'\n'.join(map(''.join,zip(*(''.join("# "[int(e)]for e in"{:07b}".format(ord(c))[1:])for c in"€÷÷÷€ÿñêêòÿ€ÿ€ÿñîîñÿûûÿŸáþÁ¿ÁþáŸÿñîîñÿàïÿ€ÿÿñîî€ÿ‚"))))

산출

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

1

세게 때리다:

(103 89 바이트)

암호:

base64 -d<<<rohBEmRiqIihFVRS7IitVWRSqIihVVRQru5Aoldi|xxd -b|sed -e's/ //g;s/1/#/g;s/0/ /g'|cut -b'9-55'

산출:

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

더 작지만 읽기 쉽지 않습니다 ( http://mckgyver.pbworks.com/f/1240440791/3PixelFont.jpg 기반 ) :

암호:

base64 -d<<<V0nCLsmQdklaqslQV23BTq2Q|xxd -b|sed -e's/ //g;s/1/#/g;s/0/ /g;'|cut -c'9-52'

산출:

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

1

자바 스크립트 / ES6 (108 바이트)

콘솔에 복사하십시오.

[,0xa0a028045,0xeeae2bb5d,0xacaabaa54,0xaeae2ba5d].map(a=>a.toString(2).replace(/./g,b=>' #'[b])).join('\n')

산출:

"
# #     # #       # #        #   # #
### ### # # ###   # # ### ## # ### #
# # ##  # # # # # ### # # #  # # #  
# # ### # # ###   # # ### #  # ### #"

(ECMAScript6 호환 브라우저, 즉 Firefox 22 이상 필요)

Inspired by @maximeeuziere, @ p01, @aemkei


.join('\n').join(` `)공백이 실제 줄 바꾸기 문자 인 곳 으로 줄일 수 있습니다 .
Chiru

1

저자 : xem, aemkei, p01, jonas

JS 콘솔에서이를 실행하십시오.

자바 스크립트, 브라우저 간, 133 132 126 117 바이트

for(i=s="";l=[43117609029,64070269789,46349920852,46890400349][i++];)for(j=0,s+="\n";c=l.toString(2)[j++];)s+=" #"[c]

JavaScript, ES6은 108 바이트 Firefox에서 작동합니다.

[,0xa0a028045,0xeeae2bb5d,0xacaabaa54,0xaeae2ba5d].map(a=>a.toString(2).replace(/./g,b=>' #'[b])).join('\n')

결과:

>
# #     # #       # #        #   # #
### ### # # ###   # # ### ## # ### #
# # ##  # # # # # ### # # #  # # #  
# # ### # # ###   # # ### #  # ### #

@ p01은 더 짧은 버전 (118 바이트)을 만들었습니다 : twitter.com/p01/status/433230019419471872
aemkei

1

HTML, 209 자

<pre># #     # #                      #   # #
# #     # #        # # #         #   # #
###  ## # #  #     # # #  #  ##  #  ## #
# # ##  # # # # ## # # # # # # # # # #
# # ### # #  #      # #   #  #   # ### #</pre>

이것이 중요합니까? :)


1

쉘, 20 자 :

banner Hello-world\!

이것이 작동하려면 물론 banner프로그램 이 필요합니다 . 데비안에서는 bsdmainutils패키지 를 설치하여 얻을 수 있습니다 .

이렇게하면 구식 연속 급지 프린터 중 하나에 인쇄되도록 아름답게 렌더링 된 메시지 버전이 인쇄되므로 위 텍스트의 출력 길이는 322 줄, 너비는 123 열이며 인쇄물의 옆면을 돌려 읽을 수 있습니다. 메시지. 결과 용지를 배너로 벽에 걸 수 있으므로 이름이 붙습니다.

http://en.wikipedia.org/wiki/Banner_%28Unix%29

편집 : 데비안 sysvbanner에는 터미널에 표시하기 위해 텍스트를 가로로 인쇄하는 배너 프로그램을 설치하는 패키지 가있는 것처럼 보입니다 . 그러나 이것은 메시지의 처음 10자를 인쇄하기 때문에이 코드 골프 문제에 대해 성가시다!


1
나는 당신이 글을 써야한다고 생각합니다 banner hello-world.
Floris

@Floris, 고마워요. 결정된.
steveha

1
배너는 1979 년 Unix v7에 나타 났으며 거의 ​​모든 Unix에 있습니다.
sch

@sch, 나는 banner거의 모든 UNIX에서 사용할 수 있음에 동의합니다 . 방금 데비안 패키지를 알지 못하는 사람들을 위해 무언가를 만들지 않았다는 편리한 증거로 넣었습니다. 요즘 banner에는 유닉스에 기본적으로 설치되는 것을 기대하지 않을 것 입니다. 더 이상 컴퓨터 실에서 더 이상 연속 급지 프린터를 찾을 수있을 것입니다. 그러나 배너 텍스트를 만드는 코드 골프는 실제로 banner어딘가에 프로그램 이 있어야합니다 . 그것은 컴퓨터 괴짜로서 우리의 풍부한 문화 역사의 일부입니다. :-)
steveha 2019

1

bash, 175170 바이트

당신 은 꽤 출력 을 생산하기 위해 꽤 많은 문자 를 낭비 해야합니다 !

base64 -d<<<H4sICKaT9FICAzAxAK2RQQ7AIAgE776CZP7/x1ZjERebcJAL0QybhcV6YdWizAPNaUatQQLFpj6h+c/XA05WF9Wtk9WJcxz4oe6e1YPQa7Wiut2wfjJ16STY30lSnNIlzvdpHhd6MiTOB65NYc+LAgAA|zcat

산출:

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

lzma / unlzma를 사용하여 더 작게 만들 수 있습니다
Emmanuel

0

F #-204 자

for s in(Seq.map(Seq.unfold(function|0L->None|i->Some(" #".[int(i%2L)],i/2L)))[173948798213L;174770890021L;191304848727L;182715110773L;45277009173L;191279670629L])do printfn"%s"(new string(Seq.toArray s))

산출:

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

0

Python + pyfiglet -87 자

from pyfiglet import figlet_format     
print(figlet_format('Hello-World!', font='banner'))

산출

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

를 설치하려면 다음 pyfiglet을 실행하십시오.

$ pip install pyfiglet

0

pyfiglet이있는 Python : argv를 사용하는 66,없는 69

66 :

from pyfiglet import*
print(figlet_format(sys.argv[1],font='3x5'))

69 :

from pyfiglet import*
print(figlet_format('Hello-World!',font='3x5'))

전나무는 다음과 같이 호출해야합니다.

python asciiart.py 'Hello-World!'

둘째:

python asciiart.py.

산출:

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

(글쎄,이 글꼴로 약간 엉뚱한 것처럼 보입니다. 그럼에도 불구하고 :))

[편집] 인수에서 쓸모없는 대시를 제거했습니다.


출력 앞에 추가 대시가 필요한 이유는 무엇입니까?
Ilmari Karonen

내 실수는 그것이 argv를 사용하는 것의 결과이며, 인수 앞에 대시를 사용했습니다 (항상 bash를 사용함에 따라 습관이 중요합니다). 편집하겠습니다, 감사합니다.
Taku

0

자바 스크립트 137 (134)

정수 비트를 사용하여 공백을 선명하게 나타냅니다. Firefox 27에서 테스트되었습니다.

137 자

s="";[0xadb73eead9,g=0xa9252aaa94,0xed252aac95,g+1,0xad272aee99].map(n=>{for(;n>0;n/=2)n%2?[s="#"+s,n--]:s=" "+s;s="\n"+s});console.log(s)

# # ## #  #  ###  # # # ### ### #  ##  #
# # #  #  #  # #  # # # # # # # #  # # #
### ## #  #  # #  # # # # # ##  #  # # #
# # #  #  #  # #  # # # # # # # #  # #  
# # ## ## ## ###  ##### ### # # ## ##  #"

134 자 (180도 회전)

s="";[0xadb73eead9,g=0xa9252aaa94,0xed252aac95,g+1,0xad272aee99].map(n=>{s+="\n";for(;n>0;n/=2)n%2?[s+="#",n--]:s+=" "});console.log(s)

"
#  ## ## # # ### #####  ### ## ## ## # #
  # #  # # # # # # # #  # #  #  #  # # #
# # #  #  ## # # # # #  # #  #  # ## ###
# # #  # # # # # # # #  # #  #  #  # # #
#  ##  # ### ### # # #  ###  #  # ## # #"

0

파이썬 3 (126)

문자 사이에 공간을 확보하여 더 잘 읽을 수 있도록합니다. 기술적으로 125 자 솔루션입니다.

print(' '.join(['','\n'][i%40==0]+['#',' '][int('72liw1j4glyc34dum02j2a4ipxa8b7vvp65x511',36)//2**i%2==0]for i in range(200)))

산출:

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

0

배쉬 37 , 33

toilet<<<"Hello-world"|tr \"m \#

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

다음과 같습니다.

echo "Hello-world" | toilet

에서 man toilet

화장실-큰 화려한 문자를 표시

tr "'\"m" "#"모든 "문자로 대체됩니다 #.


tr의 매개 변수가 인용 된 것보다 이스케이프됩니다. 내 말 tr \'\"m \#대신 tr "'\"m" "#".
manatwork

오, 잘 모르겠습니다. 감사합니다 @manatwork
fedorqui

잠깐만. toilet출력은 단일 인용 없었다. 왜 tr첫 번째 매개 변수 에 포함 시켰 습니까? 그냥 tr \"m \#충분하다.
manatwork

내가 더 커피 :) 필요가 있다고 생각 @manatwork
fedorqui

0

스몰 토크, 151

이 골프 게임은 이미 끝났지 만 참고 용으로 :

i:=((Form extent:115@14)displayString:'Hello world'x:0y:12;asImage).0to:13 do:[:y|i valuesAtY:y from:0to:114 do:[:x :p|({$#.$ }at:p+1)print].Stdout cr]

산출:

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

''(공백) 및 '#'문자 (줄 바꿈 문자) 만 사용해야합니다.
Mukul Kumar

내 실수; 출력은 이전 실행에서 나온 것입니다. 코드는 "{$ #. $} at : p + 1"입니다.
blabla999
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.