朝のコーヒーを飲む


21

このアスキーコーヒーカップを描きます。

  o
       o
    o
 __________
/ \ __
| J | \
| A | |
| V | |
| A | __ /
\ __________ /

コーヒースクリプトまたはjavaのブラウニーポイント:)

バイト、関数またはプログラム、末尾の改行または空白での最短コードは許容されます、飲み干してください!


37
私は一杯のスパークリングコーヒーを非常に疑っています。;)
デニス

8
@デニスは金曜日の朝の特別なコーヒーです;)
アーロン

1
2杯以上の飲み物でこれ以上おもしろくないでしょう。熱い飲み物は「(」と「)」で象徴される蒸気を持ち、冷たい飲み物は輝きますか?また、Rodのコメントを参考にして、現在の時間に基づいてコードを表示する必要があります。
マナトワーク

1
行の末尾に空白を入れることは受け入れられますか?
ジョナサンアラン

2
@Aaron the cupには良いパターンがありません。ハードコーディング/圧縮は多くの言語で短くなります
Rod

回答:


3

SOGL、48 バイト

mγmλ⁶…Jcēņ▒&↓¡℮štΥ{ιE‽▼⅛÷εγ╝Ξ∫$■⌡πθ&χF׀▼ΡQ7L↓F¶‘

説明:

SOGLには組み込みの文字列圧縮があり、その中の1つに文字辞書圧縮があります。さらに良いことに、使用可能な文字が「/ \ | _- \ n」のみであるボックス文字列圧縮タイプがあります。したがって、プログラム全体は、「」で囲まれた文字列です(「」は暗黙的です)。

私がコンプレッサーに与えた文字列は(エスケープされます):

"  o\n       o\n    o\n ",
"__________",
"\n/          \\__\n|   ",
"J",
"      |  \\\n|    ",
"A",
"     |  |\n|     ",
"V",
"    |  |\n|      ",
"A",
"   |__/\n\\",
"__________",
"/"

16

JavaScriptの(ES6)、110の 104バイト

edc65のおかげで4バイト節約

let f =

_=>`1o
6o
3o
 9
/44\\__
|2J5|1\\
|3A4|1|
|4V3|1|
|5A2|__/
\\9/`.replace(/\d/g,n=>' _'[n>>3].repeat(++n))

console.log(f())

使い方

オリジナルのASCIIアートの圧縮は、2〜10個の連続するスペースのすべてのシーケンスと、10個の連続するアンダースコアの2つのシーケンスを1桁に置き換えることで実現されます。

  • N連続するスペースの各シーケンスは、数字でエンコードされN-1ます。
  • アンダースコアシーケンスはでエンコードされます9

私たちは、使用N-1するのではなくN、我々が一桁以上使用する必要がありませんように。したがって、++nデコード時の必要性。

n>>3(右へのビット単位シフト)は、n = 1to が0でn = 7n = 8(使用されない)およびが1ですn = 9。したがって、に' _'[n>>3]はアンダースコアを9、その他のすべての値にはスペースを提供します。

唯一の特殊なケースは、「JAVA」のすぐ上にある10個の連続したスペースのシーケンスです。でエンコードすると9、アンダースコアシーケンスと競合します。したがって、それを5つのスペースの2つのシーケンスに分割し、としてエンコードする必要があります44


108バイトをカウントします(カウントしませんf=)。あなたはこの方法でバイト4を保存することができます:n>>3代わりに+!(n&7)9代わりに_8(2回)をし、44代わりに9
edc65

@ edc65なぜ私f=はその中に数えたのか分かりません...節約されたバイトをありがとう!
アーナルド

正規表現の仕組みを少し説明できますか?数字dをd個のスペースに置き換えたように見えます( '4'はになります' ')。しかし、それがどのように行われるのか正確にはわかりません。ビットシフトは何をしますか?なぜnを増やしているのですか?
ランチャー

1
@Cruncher「仕組み」セクションを追加しました。
アーナウド

@Arnauld非常に巧妙な:)
たけ

16

ゼリー67 64バイト

Dennisのおかげで-2バイト(1.冗長性を削除し、2。転置およびランレングスデコードZŒṙを要素の繰り返しによる削減で置き換えx/ます。)

“Ñṁ{xGgṭḷVỤɲ8ṿfƬT9Ɱ¹=qṀS“$<(ƇỤ08ØÑḌṃṘX6~cuc8HṗḞ2’Dx/ị“ ¶_/\|JAVo

オンラインでお試しください!

どうやって?

“...“...’ 2つのbase-250圧縮数のリストです。

[1021021021332411532617161526181616261916162618163425334, 2117114111551155121131612111415121115141211161312111551]

D 10進数に変換して、2つの数字リストを生成します。

[[1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 3, 3, 2, 4, 1, 1, 5, 3, 2, 6, 1, 7, 1, 6, 1, 5, 2, 6, 1, 8, 1, 6, 1, 6, 2, 6, 1, 9, 1, 6, 1, 6, 2, 6, 1, 8, 1, 6, 3, 4, 2, 5, 3, 3, 4], [2, 1, 1, 7, 1, 1, 4, 1, 1, 1, 5, 5, 1, 1, 5, 5, 1, 2, 1, 1, 3, 1, 6, 1, 2, 1, 1, 1, 4, 1, 5, 1, 2, 1, 1, 1, 5, 1, 4, 1, 2, 1, 1, 1, 6, 1, 3, 1, 2, 1, 1, 1, 5, 5, 1]]

x/ 要素の繰り返しによって減少し、1つの数字のリストを提供します(最初のリストからの数字をもう1つのリストの対応する値で繰り返す):

[1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 0, 2, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 2, 6, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 6, 1, 1, 5, 2, 6, 1, 1, 1, 1, 8, 1, 1, 1, 1, 1, 6, 1, 1, 6, 2, 6, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 6, 1, 1, 6, 2, 6, 1, 1, 1, 1, 1, 1, 8, 1, 1, 1, 6, 3, 3, 4, 2, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4]

右側のリストにインデックスを作成するよう指示します。1つはベースであり、モジュール式です(右端のアイテムには0インデックス)。右側のリスト¶_/\|JAVoは、ピルクロウが改行と同じコードポイントである必要な順序で使用される文字です。これがプログラムの終了であるため、終了パートナーは必要ありません。

[' ', ' ', 'o', '\n', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'o', '\n', ' ', ' ', ' ', ' ', 'o', '\n', ' ', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '\n', '/', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '\\', '_', '_', '\n', '|', ' ', ' ', ' ', 'J', ' ', ' ', ' ', ' ', ' ', ' ', '|', ' ', ' ', '\\', '\n', '|', ' ', ' ', ' ', ' ', 'A', ' ', ' ', ' ', ' ', ' ', '|', ' ', ' ', '|', '\n', '|', ' ', ' ', ' ', ' ', ' ', 'V', ' ', ' ', ' ', ' ', '|', ' ', ' ', '|', '\n', '|', ' ', ' ', ' ', ' ', ' ', ' ', 'A', ' ', ' ', ' ', '|', '_', '_', '/', '\n', '\\', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '/']

Jellyはこのリストの暗黙的な印刷を実行します。これには文字が含まれているため、文字列であるかのように印刷されます。

  o
       o
    o
 __________
/          \__
|   J      |  \
|    A     |  |
|     V    |  |
|      A   |__/
\__________/

7
これらの言語のいくつかは、まっすぐな圧縮アルゴリズムであると断言します
Cruncher


4
もちろん、コードよりも長いテキストを出力できる言語は、一部の出力テキストでは必ず出力テキストより長いコードを持たなければなりません。完全にランダム化された入力のために何かを書き込もうとすると、そのコードは(あなたが幸運でない限り)もっと長くなると思いますか?
ランチャー

ランダムならうん。Bubblegumは実際には圧縮を使用しており、目標はKolmogorovの複雑さの課題であるため、入力にはパターン(または少なくともここのような繰り返し)が必要です。
ジョナサンアラン

最終的には、暗黙的であり、あなたは置き換えることができZŒṙx/。また、バイトがありませんが、リテラル改行の代わりに使用すると、コードがより使いやすいimoになります。
デニス

9

CoffeeScriptのES6、214の 180バイト

r="replace";" 1o0n0 6o0n0 3o0n0 _9n0/0 9b0_1n0|0 2J0 5|0 1b0n0|0 3A 4|0 1|0n0|0 4V0 3|0 1|0n0|0 5A0 2|0_1/0n0b0_9/0"[r](/\d/g,(a,b,c)->c[b-1].repeat(a))[r](/n/g,"\n")[r](/b/g,"\\")

CoffeeScript、135バイト、ハードコーディングあり

f=()->"""  o
       o
    o
 __________
/          \__
|   J      |  \\
|    A     |  |
|     V    |  |
|      A   |__/
\__________/"""

8
賛成票も反対票もありません。通常、kolmogorov-complexityの答えのポイントは、コード内のすべてを使用せずに出力を生成することなので、この答えは好きではありません。
ハイパーニュートリノ

@HyperNeutrino、私はそれに同意し、改善に取り組んでいます。
トム

7

パイソン2、174の 172 171 167バイト

ハードコーディングなし。
Base-64エンコードなし。
正規表現なし。

k=' '
q='_'*10
print'\n'.join([k*i+'o'for i in 2,7,4]+[k+q]+['/'+k*10+'\\__']+['|'+k*s+'JAVA'[s-3]+k*(9-s)+'|'+' _'[s==6]*2+'\\||/'[s-3]for s in 3,4,5,6]+['\\'+q+'/'])

外在で2つのバイトを保存'_'*10してのPythonの変換を利用してTrue -> 1してFalse -> 0
不要な空白を削除して1バイトを節約しました。
@TuukkaXのおかげで4バイト節約されました!


あなたはで2つの無用空白を持っているようだ] forin [
Yytsi

実際には、あなたが短縮できる[2,7,4][3,4,5,6]する2,4,73,4,5,6
Yytsi

7

PowerShellの136の 124 123 105バイト

"""2o
7o
4o
 $(($a='_'*10))
/55\__
|3J6|2\
|4A5|2|
|5V4|2|
|6A3|__/
\$a/"""-replace'(\d)','$(" "*$1)'|iex

オンラインでお試しください!

@briantist -replaceが、どこかにあると知っていた短い方法を見つけてくれてありがとう。

これは、必要な数のスペースの代わりに数字を含む文字列を取ります。次に-replace、スクリプト式を使用して数字を正規表現します$(" "*$1)。したがって、たとえば、文字列の最初の行はになり$(" "*2)o、2番目の行は同様になります$(" "*7)o。トリプルクォートのため、これはパイプラインに文字列として残されます。これをダンプしますiex(略してInvoke-Expressionに似てevalいます)。スクリプト式を処理し、結果の複数行文字列をパイプラインに残します。出力は暗黙的です。


奇妙なことに、ハードコーディングは短くなります。ふむ とにかく+1 :)
HyperNeutrino

..私は、スキーマをコーディングする革新的な(ハフマン)を使用して、いくつかの答えを期待していたが、私のPython実装はまだ長いだけでなく来ている
アーロン・

何らかの理由で、短縮形のif / elseが機能しないようです ($_,' '*$_)[+$_-in48..57] -私が何を変更しても、失敗するようです。
COLSW

@ConnorLSWこれは、インデックス付けが行われる前に両方の式が評価され、配列が構築されるためです。その結果、PowerShellは乗算する方法を知らないspaceoとbarfs。
AdmBorkBork

1
@briantistそれを見つけてくれてありがとう!私はそれがそこにあることを知っていました、それを機能させるための引用符の正しい組み合わせを思い付くことができませんでした。
AdmBorkBork

4

GNU sed113 112バイト

s:$:  o@SS o@S o@ UU@/SSS \\__@|SJSS|  \\@|S AS  |  |@|S  VS |  |@|SSAS|__/@\\UU/:
s:S:   :g
y:@:\n:
s:U:_____:g

基本的なエンコーディングは、それは3つのスペースとして保存するS\nなど@などと5下線をU。もっと短いものを見つけるために、組み合わせを試行し続けます。

オンラインでお試しください!

文字列を直接印刷する簡単な解決策を以下に示します。上記のエンコードスキームを使用して136バイトの圧縮が行われ、結果は18%圧縮されます。

c\  o\
       o\
    o\
 __________\
/          \\__\
|   J      |  \\\
|    A     |  |\
|     V    |  |\
|      A   |__/\
\\__________/

オンラインでお試しください!



@Rileyありがとう。また、S3つのスペースを保存する1バイト少ないソリューションを見つけましたs。同じ数の変換を保持するため、代わりにこれを編集すると思います。
seshoumara

4

MATL、87 86 83 82 78バイト

[TIH][IAC]111Z?c'(ty!(OWM4J4gW{lm> >bw8ch|.FU2W"@\#2Dj!NQDeIMZ'F'_ /|\JAV'Za7e

この解決策は、コーヒーを「泡」とマグカップの2つの部分に分けます。バブルを作成するには、111が3つの位置にあるスパース行列を作成し、文字配列に変換します

[TIH][IAC]111Z?c

マグコンポーネントについては、文字列圧縮に依存しています

'(ty!(OWM4J4gW{lm> >bw8ch|.FU2W"@\#2Dj!NQDeIMZ'F'_ /|\JAV'Za7e

両方のコンポーネントが出力に印刷され、コンポーネント間に改行が自動的に配置されます

MATL Online試しください


4

パイソン2128の 127バイト

Rodのおかげで-1バイト(('_'*10,)宣言を避けるためにタプルの乗算を使用)。

print''.join('0'<c<':'and' '*int(c)or c for c in'''2o
7o
4o
 %s
/ 9\__
|3J6|2\\
|4A5|2|
|5V4|2|
|6A3|__/
\%s/'''%(('_'*10,)*2))

オンラインでお試しください!

注:その二重バックスラッシュ改行の前に必要です。

間のすべて''''''単一の文字列で、2は、%s末尾の内容に置き換えますフォーマッタいる%(...)順番にの2つのコピーが含まタプル、'_'*10タプル乗算経由を(...)*2'_'*10収量に行う文字列乗算'__________'

コードは、文字を横切りc、その文字列全体を使用for c in '''...し、(接合によって新しい文字列を生成するjoin(...)
のいずれかによって同定スペースの数cint(c)あれば、c桁である
か、 cそれ自体
-桁であることによって識別さ'0'<c<':'にわたって保存しますc.isdigit()


あなたは置き換えることができu,u('_'*10,)*2とドロップu宣言
ロッド

ああ、それを見て、いい方法があると思いました-@Rodに感謝します!
ジョナサンアラン

4

Java 8、294 289 248バイト

ゴルフ:

()->{String s="";for(char c:"\u026F\n\u076F\n\u046F\n __________\n/\u0A5C__\n|\u034A\u067C\u025C\n|\u0441\u057C\u027C\n|\u0556\u047C\u027C\n|\u0641\u037C__/\n\\__________/".toCharArray()){for(int i=0;i<c>>8;++i)s+=' ';s+=(char)(c&255);}return s;}

精神で、これは出力する文字列をハードコードしません。代わりに、複数のスペースの後に印刷可能な文字が続く場合が多いという事実を利用します。下位バイトの実際のASCII文字で、文字の上位バイトの文字に先行するスペースの数をエンコードします。

ゴルフをしていない:

import java.util.function.*;

public class DrinkYourMorningCoffee {

  public static void main(String[] args) {
    System.out.println(f(
    () -> {
      String s = "";
      for (char c : "\u026F\n\u076F\n\u046F\n __________\n/\u0A5C__\n|\u034A\u067C\u025C\n|\u0441\u057C\u027C\n|\u0556\u047C\u027C\n|\u0641\u037C__/\n\\__________/".toCharArray()) {
        for (int i = 0; i < c >> 8; ++i) {
          s += ' ';
        }
        s += (char) (c & 255);
      }
      return s;
    }
    ));
  }

  private static String f(Supplier<String> s) {
    return s.get();
  }
}

上位バイトの文字の前に先行スペースの数をエンコードする方が良いと思います。そのため、6つのスペースが前にある「A」はとしてエンコードされ\u0641ます。
デビッドコンラッド

@DavidConradなぜ両方をしないのですか?文字列内のどこにも連続した繰り返しは10個以下で、10進数の10個はhexに収まりFます。両方に適合させることができるはずです。

それは良い点です。
デビッドコンラッド

1
@DavidConradは、2番目のループを追加する必要があるため、最終的にファイルサイズを大きくしました。しかし、16進を10進定数に変換することで、数バイトを節約しました。0x接頭辞をなくすことが助けになりました。

1
便利そうなエンコードには、スペースの数と繰り返しの数の2つがあります。正解:スペースの数をエンコードすることは、純益です。また、他のコード(ifたとえば冗長なコード)をいくつかゴルフすることもでき、サイズの約1/6を削り取ることができました。

2

Befunge、158 105 101バイト

<v"XaXXXNYXNY77777'XXXXX2_TXQXX0XZTXDXX0X^TXXRX0X^TXXDX07]27777#"p29+55
:<_@#:,g2/+55,g2%+55
\JV/|_Ao

オンラインでお試しください!

文字列内の文字は、最初にインデックスとして10個の可能な値のルックアップテーブルにエンコードされます。次に、インデックスはペアにグループ化され、各ペアは0〜99の範囲の単一の数値(i1 + i2 * 10)に結合されます。ルックアップテーブルの順序を慎重に選択することで、これらの値が常に有効になることを保証できます文字列リテラルで表現できるASCII文字。

これはコード自体の内訳です:

Source code with execution paths highlighted

*ルックアップテーブルの最後の要素を改行文字(ASCII 10)で初期化することから始めます。
*次に、文字列リテラルを使用して、エンコードされたコンテンツをスタックにプッシュします。
*最後に、スタックの値をループ処理し、一度に2つの文字をデコードして出力します。
*最後の行はルックアップテーブルを保持します。9番目の要素は暗黙のスペースであり、10番目(改行)は前述のように手動で設定されます。


2

網膜、71バイト

私の他の答えとは異なり、これは手書きです。


2o¶6o¶3o¶1=¶/55\__¶|3J6|2\¶|4A5|2|¶|5V4|2|¶|6A3|__/¶\=/
=
10$*_
\d
$* 

(末尾に末尾のスペースがあります)

オンラインでお試しください!

原則として、置換によってコーヒーカップを再構築できる「圧縮」文字列がまだあります。さまざまな置換を試してみましたが、やる価値があるのは次のとおりであることがわかりました。

  • =になります__________(10個の下線)
  • 任意の数字がその数のスペースに変わります

2

Common Lisp、125 123 122 120 114バイト

(format t"~3@{~vto
~} ~10@{_~}
/~11t\\__
|   J~11t|  \\
~2@{|~5t~a~11t|  |
~}|~7tA   |__/
\\~10{_~}/"2 7 4'A" V"1)

Enterを~&s ではなくstringに入れるというアイデアを使用して、6バイトを保存しました。

改善のアイデアを歓迎します。


1

Python3、206バイト

print('  o\n'+7*' '+'o\n'+4*' '+'o\n'+' '+10*'_'+'\n'+'/'+10*' '+'\__\n'+'|'+3*' '+'J'+6*' '+'|  \\\n'+'|'+4*' '+'A'+5*' '+'|  |\n'+'|'+5*' '+'V'+4*' '+'|  |\n'+'|'+6*' '+'A'+3*' '+'|__/\n'+'\\'+10*'_'+'/') 

2
多くのスペース文字… s=' '変数を宣言して使用する方が良いでしょう。
マナトワーク

また、改行を事前に定義しても害はありません
ウィートウィザード

3
出力のハードコーディングが短くなりました
Kritixi Lithos

@WheatWizard、そうは思いません。単一の改行のみがあります。その他は文字列内にあるため、変数を使用するには連結演算子も必要です。そして'o\n'、と同じ長さ'o'+nです。
マナトワーク

2
一つはできる@manatwork:print(*(' o',7*' '+'o',4*' '+'o',' '+10*'_','/'+10*' '+'\__','|'+3*' '+'J'+6*' '+'| \\','|'+4*' '+'A'+5*' '+'| |','|'+5*' '+'V'+4*' '+'| |','|'+6*' '+'A'+3*' '+'|__/','\\'+10*'_'+'/'),sep='\n')またはfor x in(' o',7*' '+'o',4*' '+'o',' '+10*'_','/'+10*' '+'\__','|'+3*' '+'J'+6*' '+'| \\','|'+4*' '+'A'+5*' '+'| |','|'+5*' '+'V'+4*' '+'| |','|'+6*' '+'A'+3*' '+'|__/','\\'+10*'_'+'/'):print(x)、両方まだ長いより197ある136ハードコード
ジョナサンアラン


1

C - 179

Solution with extensive use of format string:

void f(){printf("%1$3c\n%1$8c\n%1$5c\n%2$11s\n/%3$13s\n|%4$4c%5$7c%6$3c\n|%7$5c%5$6c%5$3c\n|%8$6c%5$5c%5$3c\n|%7$7c%5$4c__/\n\\%2$s/\n",'o',"__________","\\__",74,'|',92,65,86);}

Here is a more readable version:

void f() {
  printf("%1$3c\n"
         "%1$8c\n"
         "%1$5c\n"
         "%2$11s\n"
         "/%3$13s\n"
         "|%4$4c%5$7c%6$3c\n"
         "|%7$5c%5$6c%5$3c\n"
         "|%8$6c%5$5c%5$3c\n"
         "|%7$7c%5$4c__/\n"
         "\\%2$s/\n"
         'o',"__________","\\__",'J','|','\','A','V');
}

1
Brute forcing the art inside code give a shorter version and print with puts: void g(){puts(" o\n o\n o\n __________\n/ \\__\n| J | \\\n| A | |\n| V | |\n| A |__/\n\__________/\n");}
Churam

1

Retina, 99 bytes

This solution was generated automatically using this script.


0 0o¶ 1¶/32\__¶4 J24\¶|3A 34|¶| 3V34|¶|2A   |__/¶\1/
4
|  
3
    
2
      
1
__________
0
  o¶    

(there are trailing spaces on many lines)

This works by using numbers 1,2,3,4 in place of some character sequences that are repeated in the target string and then substituting them back.

I know it could be golfed more by tweaking this code or completely changing approach, but since the kolmogorov meta-golf challenge had quite a disappointing outcome I wanted to try using my script on a real challenge.

Try it online!


You can replace all the spaces at the end of the last line to a 3 and then move the substitution up to before the 3. Also you can change 2\n to 2\n3 and move this substitution to before the 3. Try it online!
Kritixi Lithos

You can also change 1\n__________ to 1\n_____ and then change each 1 in the main substitution to 11 Try it online!
Kritixi Lithos

@KritixiLithos as I said, I know this can be golfed :) I just wanted to post a solution created directly by my algorithm, maybe I'll post another answer which is optimized manually^^
Leo

0

Python 3.6

(non-competing)

Here's my attempt at Huffman encoding. It's definitely golfable further if anyone wants to take up the idea.

from bitarray import bitarray as b
a=b()
a.frombytes(bytes.fromhex('ca7fca7e53b6db6db664ffc6d9ae1fd6335e2fad1af83d68d7e2e9b218db6db6db20'))
print(''.join(a.decode({k:b(v)for k,v in zip(" _|\no/\\AJV","1 011 010 0011 00101 00100 00011 00010 00001 00000".split())})))

The literal could be compressed further still by converting to base64 or other, and the Huffman tree could be optimized to yield a shorter bitarray still.


3
Non-competing is not an excuse for invalidity.
Mego

@Mego I don't have the time rn to fix it, I just wanted to give the framework of a solution for someone else to run with. non-competitive because I was the OP of the challenge
Aaron

2
That really doesn't matter. Our policy is clear.
Mego

@Mego fixed... just for you
Aaron

0

GameMaker Language, 138 bytes

show_message("  o#       o#    o# __________#/          \__#|   J      |  \#|    A     |  |#|     V    |  |#|      A   |__/#\__________/")

0

C, 141 Bytes

f(){printf("  o\n%7co\n    o\n __________\n/%11c__\n|   J%6c|  \\\n|    A     |  |\n|%6c    |  |\n|%7c   |__/\n\\__________/",0,92,0,86,65);}

Usage

main(){f();}

Easy Solution, 148 Bytes:

w(){puts("  o\n       o\n    o\n __________\n/          \\__\n|   J      |  \\\n|    A     |  |\n|     V    |  |\n|      A   |__/\n\\__________/");}

0

PHP, 116 bytes

for(;$c="1o
6o
3o
 9
/44\\__
|2J5|1\\
|3A4|1|
|4V3|1|
|5A2|__/
\\9/"[$i++];)echo$c>0?str_repeat(" _"[$c>8],$c+1):$c;

This looks a lot like Arnauld´s answer - and does pretty much the same. Run with -r.


0

zsh, 86 bytes

printf "^_<8b>^H^@^@^@^@^@^B^CSPÈçR^@^A^P^CJÆÃ^A<97>¾^B^\Ä^@¹5@Ú^KÂ^E2cÀ|^EG^X¿^FÂW^HCæÃTÔÄÇësÅÀ^L^Fq^@<92>}ý^?{^@^@^@"|zcat

Explanation: that string is the gzip-compressed java cup ascii art. I use printf, because with echo, zcat prints a warning, and echo -e is one character longer. It doesn't work with bash or sh, because they think it's a binary file. Since you can't effectively paste that output from the browser, here's a usable file.


0

Java 9 / JShell, 299 bytes

()->{String s="";BigInteger b=new BigInteger("43ljxwxunmd9l9jcb3w0rylqzbs62sy1zk7gak5836c2lv5t36ej6682n2pyucm7gkm9bkfbn4ttn0gltbscvbttifvtdfetxorj6mmy3mt6r3",36);while(!b.equals(BigInteger.ZERO)){int x=b.intValue()&0x3ff;for(int i=0;i<x>>7;i++)s+=' ';s+=(char)(x&0x7f);b=b.shiftRight(10);}return s;}

Ungolfed:

() -> {
    String s = "";
    BigInteger b = new BigInteger(
        "43ljxwxunmd9l9jcb3w0rylqzbs62sy1zk7gak5836c2lv5t36ej6682n2pyucm7gkm9bkfbn4ttn0gltbscvbttifvtdfetxorj6mmy3mt6r3",
        36);
    while (!b.equals(BigInteger.ZERO)) { 
        int x = b.intValue() & 0x3ff;
        for (int i = 0; i < x >> 7; i++) s+=' ';
        s += (char)(x&0x7f);
        b = b.shiftRight(10);
    }
    return s;
}

Usage in JShell:

Supplier<String> golf = <lambda expression>
System.out.println(golf.get())

Encodes each character as ten bits consisting of a count of the number of spaces before the character in the high three bits following by the code point in the low seven bits.

(Since there are only three bits for the count it can't represent more than seven consecutive spaces, and there are ten spaces at one point in the string. These are encoded as a count of six, followed by a space, and then a count of three followed by the next character.)

Sadly, it loses to this trivial 140-byte Java solution:

()->"  o\n       o\n    o\n __________\n/          \\__\n|   J      |  \\\n|    A     |  |\n|     V    |  |\n|      A   |__/\n\\__________/"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.