ASCIIアート「Hello-World!」[終了]


39

あなたの目標は、「Hello-World!」を出力する最短のプログラムを書くことです。ASCIIアートとして。

ルール:

  • それは人間が読めるものでなければなりません、私はそのサイズ(cols / rows)を気にしません
  • 出力にはスペース( "")、シャープ( "#")、改行のみを含める必要があります
  • 出力は等幅フォントで動作する必要があります(ただし、文字は等幅フォントを使用する必要はありません)
  • 結果では、各文字は少なくとも1つのスペースで互いに分離する必要があります

コードに言語とバイト数を含むタイトルを追加してください。


5
bash:33文字– pastebin.com/HZ1w8z8gこれは受け入れられますか?
マナトワーク14

4
なぜハイフンしかし...?
Timwi

1
HQ9 +のような事前定義されたものの使用を不可能または実行不可能なほど難しくすることを想定しています。
マナトワーク

1
@PeterTaylor:スペースとハッシュで構成される出力は等幅フォントで動作する必要がありますが、大量のハッシュで表される文字はすべて同じ幅である必要はありません。
ティムウィ

回答:


18

私はこれを絶対に楽しんだ

Perl、126 116 114 102 98   87(69)文字(ASCIIのみ、外部フォントなし)

現在のところ、外部フォントを使用しない最短の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

JavaScript、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
ティムウィ

4
これは私のお気に入りです。興味深い方法を使用してソリューションに到達しました。素晴らしい!
ダースエグレジャス14

2
独創的で、JavaScript用のFigletを作成したばかりだと思います;)
WallyWest 14

Dagnammit、これも私の最初の考えでした!代わりに賛成票があります。:)
ジョーダングレー14

37

Mathematica 101 99 98

これにより、式がラスタライズされ、バイナリイメージデータが取得され、各1が "#"に、各0が ""(空のスペース)に変換され、12 x 130文字グリッドで出力が表示されます。

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

こんにちは

ジョナサン・ヴァン・マトレのおかげで1人のキャラクターが節約されました。


1
厚さがlで異なるのはなぜですか?
MrZander 14

式のラスタライズは単一の画像として行いました。私が手紙でそれをやったなら、lは同一だったでしょう。また、ラスタライズグリッドサイズを大きくすることにより、出力は印刷文字の品質に近づく傾向があります。ただし、グリッドが大きいと、「#」が比較的小さくなり、単なるピクセルのように見えます。問題は残っています。画像内の2つのlが異なる重みを受け取るのはなぜですか?
DavidC 14

3
@MrZander、フォントがヒントを持っているまさにその理由です:ASCIIアートやスクリーンのステムのように、フォントを低解像度のピクセルグリッドに収めようとすると、フォントはすべてのサイズで整数ピクセルの幅のステムを持つことができないため、決して均一ではありません。ここに写真付きの素敵な説明があります。
ジョーイ14

1
おそらく最高の見栄え
ローナンデジェロ14

1
ジョナサン・ヴァン・マトレ、ありがとう。最初のパラメーターは99に減らすことができますが、出力品質のため、2番目のパラメーターは減らしたくありません。(これはコードゴルフの挑戦であることを認識していますが、私は誇りを持っています。)
DavidC 14

25

Delphi 85バイト

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

私は知っている、それは最も美しい解決策ではありませんが、外部リソースを使用できないというルールはありませんでした。
結果: 結果


12
前景ではなく背景として#を使用する創造性のために+1。
ゲリット14

1
TStrings代わりにsを宣言できます。(ただし、インスタンス化はTStringList。で続けてください)
マナトワーク14

ロードするファイルは、実際にDelphiに同梱されているものからのものですか、それとも自分で作成したものですか?後者の場合、スコアの一部としてその長さを数える必要があると思います。
イルマリカロネン14

@ Ilmari、Delphiには「Hello-World」ASCIIアートを含むファイルが付属していないと思います:)さらに、回答には外部リソースを使用していることが記載されています。
TLama 14

3
@TLama:私もそう思っていましたが、丁寧に表現しようとしていました。私のポイントは、ということである場合でも、外部リソースを許された、このプログラムはまだ(実際には、我々は何も持っていない、とその作者のを除いて誰のコンピュータに失敗する証明それも自分のコンピュータ上で動作することを)。また、次のPerlスクリプトを使用して彼のスコアを打つことができますdo X。「外部リソース」の内容がX指定されていない残っている(?それは私のために働く、ということは十分ではありません)が、私はのカップル提供してきました可能性の提案以下...
イルマリKaronen

15

Perl 5、54バイト/ 71印刷可能なASCII文字

注:これは、この回答の2番目のバージョンです。PHPとgzinflate()を使用した元の64バイト/ 95文字バージョンについては、この回答の履歴を参照してください。

71文字の印刷可能なASCIIバージョンは次のとおりです。

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

54バイトバージョンには印刷できない文字が含まれているため、16進ダンプとして提供しています。Unixishシステムではxxd -r、16進ダンプを実行可能な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!」のスクリーンショット  アスキーアート

(スクリーンショットとして表示されるのは、SEの行の高さが大きいためASCIIアートが見づらく読みづらいためです。


追伸 上記のソリューションの出力があまりにもミニマルすぎると感じた場合、Tomasのソリューションに似た出力を生成する92文字のバリアントを次に示します。

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

スクリーンショットは次のとおりです。

「Hello-World!」のスクリーンショット  アスキーアート


Pps。私はかなり確信しているこのGolfScript、51個の文字を:あなたは他の方法でそれだけでコールバナー/ Figletによるまたはそのチートものをカウントしていない場合)、最短印刷可能な-ASCIIソリューションです

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

出力は、上記の71文字のPerlソリューションと同じです。


読みやすさの境界を越えたばかりだと思います:
トマス14

1
私の端末では、ここの行間隔が大きいため、SEの場合よりもかなり読みやすくなっています。
イルマリカロネン14

とにかく判読できません。ところで私は外部圧縮アルゴリズムなしで92文字あなたの出力を生成することができます:
Tomas 14

@トーマス:あなたは正しい、ジッピングはここでの勝利の答えではないようです。私がまだ持っていなかった場合、そのために+1を与えます。ところで、私は71文字でそれを行うことができます。上記を参照。:
イルマリカロネン14

1
Ilmari、あなたは私に挑戦するべきではありませんでしたunpack:-) 69文字の解決策を見つけました(87は私の素晴らしい出力です)。
トマス14

8

シェル+フィグレット(35)

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

これはどのようなフォントですか?それらは小さな大文字のように見えます。
ランチャー

それはバナー-f bannerです*または|の代わりに#を使用した最初のフォントでした。および_。
厳しい14


「90」を「9」に変更すると、背が高くて細いhello worldが生成されますが、OPは列または行を気にしないため、受け入れられるはずです。
alexyorke 14

有権者は時々私を困惑させます。どうしてこれは+8の正味スコアを取得しますが、他のfigletの回答は-3の正味スコアを取得しますか?
デジタル外傷14

8

パイソン260 215 186 152

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

パイソン196 183 130 114(しかしuglyer)

>>> 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バイト

(私は知っています。しかし、完全を期すために、頭を悩ます必要があります^^繰り返しが少ないので、それほど短くなることはありません。1行目と2行目のループは既に...)

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

通訳者:http : //koti.mbnet.fi/villes/php/bf.php


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

@ASKASKのナンバージェネレーターとイメージをループと組み合わせていくつかの追加のチューニングを行うと、次のようになります。

Brainfuck、343 339 336 334のバイト

私の元のバージョンよりもいように見えます。

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

(画像は@ASKASKの回答を参照)


5

ECMAScriptの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ステートメントは必要ありません。
マナトワーク14

@manatwork削除しようとしましたが、コンパイルできなくなりました。確かですか?
フローレント14


@manatworkありがとう!
フローレント14

charCodeAt(0)可能な減少charCodeAt()
チル

4

スクリプティング、38文字(76バイト)

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

出力:

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

4
code-golf infoページには、「Unicodeを使用する場合、バイトカウントにはUTF-8を使用する必要があります」と記載されています。間違っていなければ、プログラムの長さは114バイトになります。(あなたが言及する76バイトはBOMなしのUTF-16のためです。)
14

@res:それを変更するのは、それを要求する意味がないからです。私のScliptingインタープリターはUTF-16を十分に理解しているため、UTF-16としてエンコードされた有効なプログラムです。
ティムウィ14

1
ティムウィ、ケースは重要です
トマス14

3
@ user689-実際には「Hello-World!」最後に感嘆符...と

1
「コミュニティに受け入れられた」とは、「コミュニティの議論なしに、そうする力を持つ少数の人々によって受け入れられた」ことを意味すると思います。
解像度14

3

Brainfuck、362バイト

@ johannes-hさん、ごめんなさい。あなたのものを見たので、自分で作ろうと思いました。開始時の高速な数値生成と単純な画像の組み合わせを使用して、結果をより少ないバイトで生成します。ただし、他の場所ではループを使用しないため、最適化の対象となります。

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

生成するもの:

写真


ふむ 数値生成はどれくらい短くなりますか?画像の変更は私にはごまかしのように見えるので(少なくともこのソリューションで直接比較する場合-もちろんこのコンテストで完全に有効です)^^でも、後であなたの画像を調べます:)ただし、2行です。ずっと短いです(正しく覚えていれば10〜20バイトでした)
ヨハネスH. 14

343バイトまでのバージョンを持って、私の答えを参照してください
ヨハネス・H.

さらに短く、より多くの繰り返しをループに置き換えます。339今。
ヨハネスH. 14

私はあなたにコメントするのに十分な評判はありませんが、新しいバージョンをよく見ると、そこに「> <」があり、それを削除して2バイトを奪うことができます:)
ASKASK 14

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.の答えでした:-)

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

(端末でより読みやすく)

Perl、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を使用して1ビットを見つけます。

Blender / Ilmari Karonenから盗まれたフォントデータ。

Bash 3.2および4.2でテスト済み

ところで、これはたった166文字です:

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

1

Python 3、114

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

出力(@Ilmari Karonenから盗まれた高さ4文字のeおよびW):

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

そして、短いもの(107):

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

出力:

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

ほとんど読めません。2番目の出力からのWorldは実際にはUorldです。
シルヴィブルセア14

@SilviuBurcea:実際の端末エミュレーターで見た目が良くなります。また、「人間が読み取れる」ことにより、多少のゆらぎが生じます。「HELLO⊔ORLD!」を推測できると思います。手段。
ブレンダー14

16進定数を使用し、いくつかの文字を削る
Floris 14

@フロリス:私はそれを試しました。2文字の接頭辞により、約20桁まで同じ長さになります。
ブレンダー14

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

Javascript / ES6(108バイト)

コンソールにコピー:

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

出力:

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

(ECMAScript6互換ブラウザ、つまりFirefox 22以降が必要)

@ maximeeuziere、@ p01、@ aemkeiからの着想


.join('\n').join(` `)スペースが実際の改行文字である場所に減らすことができます。
チル

1

著者:xem、aemkei、p01、jonas

JSコンソールでこれを実行します。

JavaScriptが、クロスブラウザ、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、Firefoxで動作、108バイト

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

結果:

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

@ p01はここで短いバージョン(118バイト)を作成しました:twitter.com/p01/status/433230019419471872
aemkei 14

1

HTML、209文字

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

これはカウントされますか?:)


1

シェル、20文字:

banner Hello-world\!

これが機能するためには、もちろんbannerプログラムが必要です。Debianでは、bsdmainutilsパッケージをインストールすることで入手できます。

これにより、古い連続フィードプリンターの1つで印刷されるように設計されたメッセージの美しくレンダリングされたバージョンが印刷されるため、上記のテキストの出力は322行x 123列の幅になります。メッセージ。結果の紙をバナーとして壁に掛けることができるため、名前が付けられます。

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

編集:Debianには、sysvbannerターミナルに表示するためにテキストを水平方向に印刷するバナープログラムをインストールするパッケージもあるようです。ただし、これはメッセージの最初の10文字のみを出力するため、このコードゴルフの問題は少し面倒です!


1
あなたは書くつもりbanner hello-worldだったと思う。
フローリス14

@Floris、ヘッズアップに感謝します。一定。
steveha

1
バナーは1979年にUnix v7に登場し、事実上すべてのUnixにあります。
SCH

@sch、bannerほぼすべてのUNIXで利用できることに同意します。Debianパッケージは、知らない人のために、何かを作り上げているだけではないという便利な証拠にしただけです。最近ではbanner、UNIXにデフォルトでインストールされていることを期待していません。コンピューターラボで連続フィードプリンターを見つけることはもうありません。しかし、バナーテキストを作成するコードゴルフでは、実際にbannerプログラムをどこかに配置する必要があります。これは、コンピューターオタクとしての豊かな文化史の一部です。:-)
steveha 14

1

bash、175 170バイト

きれいな出力を生成するには、かなりの数の文字を無駄にする必要があります

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

出力:

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

lzma / unlzmaで小さくすることができます
エマニュエル

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'))

firsは、たとえば次のように呼び出す必要があります。

python asciiart.py 'Hello-World!'

2番目:

python asciiart.py。

出力:

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

(まあ、このフォントではちょっとくだらないように見えます。それでも:))

[編集]陳腐化したダッシュを引数から削除しました。


なぜ出力の前に余分なダッシュがあるのですか?
イルマリカロネン14

私の間違い、それはargvを使用したものからの出力です。引数の前にダッシュを使用しました(いつもbashを使用しているため、習慣です)。編集します、ありがとう。
タク14

0

Javascript 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

Python3(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" "#"
マナトワーク14

いいことだ、私はそれを知らなかった。ありがとう@manatwork
fedorqui

一瞬待って。toilet出力には、単一引用符がありませんでした。trの最初のパラメーターに含めたのはなぜですか?ちょうどtr \"m \#十分です。
マナトワーク14

@manatworkもっとコーヒーが必要だと思う:)
fedorqui 14

0

Smalltalk、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]

出力:

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

''(スペース)および '#'文字(改行文字も)のみを使用する必要があります。
ムクルクマール14

私の間違い; 出力は前回の実行からのものでした。コードは正しい「{$#。$} at:p + 1」です。
blabla999 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.