태그 보관물: ascii-art

ascii-art

ASCII 아트“Hello-World!”[닫힘] 목표는 “Hello-World!”를 출력하는 가장 짧은 프로그램을

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

규칙 :

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

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



답변

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

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

산출:


답변

자바 스크립트, 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에서 작동합니다.

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

답변

매스 매 티카 101 99 98

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

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

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


답변

델파이 85 바이트

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

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


답변

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기능 을 사용하려면 둘 다 함께 실행해야 합니다. 다음과 같은 출력을 생성합니다.

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


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

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

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


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

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

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


답변

셸 + 무화과 (35)

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

답변

파이썬 260 215 186 152

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

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

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

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