ギリシャの国歌を印刷する


8

1821年3月25日、ギリシャは大きな独立戦争を戦っ。これを尊重するために、あなたの仕事はギリシャの国歌を印刷することです:

Σε γνωρίζω από την κόψη
του σπαθιού την τρομερή.
Σε γνωρίζω από την όψη
που με βιά μετράει τη γη.
Απ' τα κόκκαλα βγαλμένη,
των Ελλήνων τα ιερά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!

歌詞はオリジナルですが、これは私の国歌(句読点、大文字)のバージョンです。

  • 念のため、このテキストを印刷または返すビルトインは禁止されています。
  • 印刷されるテキストは、オプションで末尾の改行を含め、上記とまったく同じである必要があります。
  • 出力は、UTF-8である必要があります。ただし、サポートできない場合は、サポートされている最も近い代替形式でエンコードする必要があります。

6
「このテキストを印刷したり返したりするビルトインは禁止されています」-Mathematicaよ、あなたを見ている!
steenbergh 2017年

2
@ETHproductions imhoそれは同じですが、競争する資格のある言語に対してより制限的です...
steenbergh

4
まだ、ゴルフの言葉に外国語の辞書がないと思いますか?ティスクティスク。
mbomb007

4
私はほぼすべての言語がこのテキストをUTF-8で出力できると確信しています。たとえばΣ、ISO-8859-1では、UTF-8で解釈すると、になりますΣ。(便利なツール
ETHproductions 2017年

回答:


7

ゼリー180の 174 163バイト

60r26;“WSNME‘ȷ_Ọ;“ ¶.',!”“¢Iç÷ṀDė3H⁷'UBV“ñẸḣY]ṭżẸ-dƒjṭ{^ṣ8ḞkƊK“ẈḊbƝÑk?Æ.)Aɱ3ẎƬṠ⁵ʂ÷Gẏp⁴ṇ1ẸR ¬,F°0>ST$[?ṘȦŀẎcFẈṃijȯÆḋ“¦ḟw2ðƊhSẏ¥ẏ5ƒẉɦ⁺Ʋ⁴Ɓ¦ÞIzƥṙḊOḊ-÷~øWḤ0ṃ’ṃ€6676ḃ4¤ị

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


いくつかの本当に難しいゴルフが行われています(... ... ṃ€... ...)...最短の回答をおめでとうございます(より多くの賛成投票に値します)!
Erik the Outgolfer 2017年

4

Python 3、263バイト

s="BT R\h`NUh P_k cV\ %skgV\n"
print(''.join(i if 47>ord(i)else chr(ord(i)+865)for i in s%"Y"+"c^d b_PWX^l cV\ c`^[T`M.\n"+s%""+"_^d [T QXK [Tc`KTX cV RV.\n0_' cP YkYYPZP QRPZ[L\V,\nch\ 4ZZM\h\ cP XT`K!"+"\n9PX bP\ _`mcP P\S`TXh[L\V,\nfPN`T h fPN`T :TdcT`XK!"*3))

オンラインでお試しください!mbomb007が
使用したのと同じ繰り返しテクニックを使用しますが、47(すべてのギリシャ文字)を超えるすべての文字、u913〜u974をu48〜u109に置き換え、印刷する前にこれを元に戻します


4

Java 7、320 319 300 294 293バイト

void Z(){String a="AS Q[g_MTg O^j bU[ ",b="8OW aO[ ^_lbO O[R_SWgZK[U,\neOM_S g eOM_S 9ScbS_WJ!\n";for(char C:(a+"XjfU\nb]c a^OVW]k bU[ b_]ZS_L.\n"+a+"jfU\n^]c ZS PWJ ZSb_JSW bU QU.\n/^' bO XjXXOYO PQOYZK[U,\nbg[ 3YYL[g[ bO WS_J!\n"+b+b+b).toCharArray())System.out.print((char)(C>46?C+866:C));}

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

これは、末尾の改行で国歌を出力します。関数を変換してa Stringをa に変換したvoidので、文字列を返してバイトを保存する代わりに文字列を出力します。

午前中にさらにゴルフをしますかゴルファーは寝ません:P

説明(古い)

String Z(){
  // X contains the value of the Greek Anthem
  String X="",
  // a and b contain some repeated parts of the anthem
         a="AS Q[g_MTg O^j bU[ ",
         b="8OW aO[ ^_lbO O[R_SWgZK[U,\neOM_S g eOM_S 9ScbS_WJ!\n";
  // Then we loop over every char in this string
  for(char C: (a+"XjfU\nb]c a^OVW]k bU[ b_]ZS_L.\n"+a+"jfU\n^]c ZS PWJ ZSb_JSW bU QU.\n/^' bO XjXXOYO PQOYZK[U,\nbg[ 3YYL[g[ bO WS_J!\n"+b+b+b).toCharArray())
    // Adding 866 to the char if it is greater than `.` 46
    // (we also want to preserve the punctuation)
    X+=(char)(C>46?C+866:C);
  return X;
}

この削減された文字列を取得するために、コードポイントからどの数値を引くのが最適かを手動で確認しました。これらの値はとの間にある必要があり~ます。チャーは(句読点であるか否かを検出するために.'!すべての値が上記の嘘をついている場合)かどうかを、それが最良であろう.(46)。また\、文字列にs があってはなりません。そうしないと、Javaはエスケープシーケンスと見なし、エスケープする必要があるためです。最後に、ギリシャ文字から866を引くことを思いつきました。


ラムダにしてみませんか?
Pavel

@ГригорийПерельманJava 7:Pであるため
user41805

1
@ГригорийПерельман出力にはラムダ文字が含まれており、ラムダのラムダはひどく間違っている
Matthew Roh

3

Python 3、350 345バイト

s="Σε γνωρίζω από την %sόψη\n"
print(s%'κ'+"του σπαθιού την τρομερή.\n"+s%''+"που με βιά μετράει τη γη.\nΑπ' τα κόκκαλα βγαλμένη,\nτων Ελλήνων τα ιερά!"+"\nΚαι σαν πρώτα ανδρειωμένη,\nχαίρε ω χαίρε Λευτεριά!"*3)

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



3

Windows 10バッチ、424404バイト

@chcp>nul 65001
@set s="Σε γνωρίζω από την κόψη"
@set t="Και σαν πρώτα ανδρειωμένη," "χαίρε ω χαίρε Λευτεριά!"
@for %%l in (%s% "του σπαθιού την τρομερή." %s:κ=% "που με βιά μετράει τη γη." "Απ' τα κόκκαλα βγαλμένη," "των Ελλήνων τα ιερά!" %t% %t% %t%) do @echo %%~l

ノート:

  • これを保存するためにメモ帳を使用しないでください。スクリプトが失敗する原因となるBOMが追加されます。
  • chcpあなたのコマンドプロンプトがラスターフォントを使用するように設定されている場合、コールは失敗します。たとえば、Lucida Consoleに変更します(再起動は必要ありません)。
  • バッチファイルには、かなり新しいバージョンのWindowsが必要なようです。Windows XPはにまったく満足していませんでしたchcp 65001

編集:@ ConorO'Brienのおかげで20バイト節約されました。


これは420バイトだけではありませんか?
Xcoder氏2017年

@ Mr.Xcoder私のWindowsテキストエディターはMS-DOSの行末を使用しています。
Neil

なぜだけではなく@set t="Και σαν πρώτα ανδρειωμένη," "χαίρε ω χαίρε Λευτεριά!"て交換%t% %u%して%t%
Conor O'Brien

@ ConorO'Brienそれはただの天才です。ありがとう!
Neil

3

バブルガム、190バイト

0000000: d5 8e b5 61 04 51 10 43 f3 ad 62 9c 98 ed 16 cd  ...a.Q.C..b.....
0000010: cc 4c a1 c3 e3 bb 65 ec 40 6a c9 9a 6f cc 1c df  .L....e.@j..o...
0000020: f2 8c a4 b7 c2 3b 12 c3 0c 0d 4f b8 83 11 52 9e  .....;....O...R.
0000030: 18 26 dc e6 b9 71 1f 19 1a 43 c9 73 1e 23 8b 34  .&...q...C.s.#.4
0000040: 77 3c 30 ee 71 1b 13 e4 28 34 5e 7c b9 f4 52 bc  w<0.q...(4^|..R.
0000050: 43 8d 44 ef e1 66 f4 3f f7 9b ba 1d a8 9e 34 4c  C.D..f.?......4L
0000060: 05 ed 87 ef c0 eb 23 41 11 fc 8e ca 44 bd e1 f6  ......#A....D...
0000070: 92 2f 26 a1 16 4a 9d 13 54 3e 4e e5 d0 a7 b2 03  ./&..J..T>N.....
0000080: 34 c8 d6 55 97 27 5e ff 01 95 ce 21 1a 1f bf b2  4..U.'^....!....
0000090: 45 a8 d9 5f 88 f0 8a 89 ff 62 4f 2f 89 db dc e1  E.._.....bO/....
00000a0: 65 b0 f8 8c 58 26 35 50 f0 97 7a 24 65 e4 7b e3  e...X&5P..z$e.{.
00000b0: 89 fd 99 f0 26 e6 81 b2 4e 2e e6 99 fd 01        ....&...N.....

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


3

PowerShell332 270 261バイト

-join([char[]]"$(($a='=O MWc[IPc KZf ^QW')) TfbQ
^Y_ ]ZKRSYg ^QW ^[YVO[H.
$a fbQ
ZY_ VO LSF VO^[FOS ^Q MQ.
+Z' ^K TfTTKUK LMKUVGWQ,
^cW /UUHWcW ^K SO[F!
$('4KS ]KW Z[h^K KWN[OScVGWQ,
aKI[O c aKI[O 5O_^O[SF!
'*3)"|%{([char](870+$_),$_)[+$_-in10,32,33,39,44,46]})

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

これは、変更された文字列を-arrayとして受け取り、繰り返しごとcharに1つずつループを介してフィードし|%{...}ます。繰り返しごとに文字を出力するか、$_または(それが句読点かどうかに基づいて)870として再キャストする前に文字を増分しますchar。他のいくつかのトリックは$a繰り返しフレーズとして設定され、最後の3つのスタンザを重複解除します。これらはすべて-join完全な文字列にまとめられ、出力は暗黙的に行われます。

編集-ウー!これは、サイトでの1100番目のPowerShellの回答です。:D


それは12番目の答えだけですか?;)
Conor O'Brien

最新バージョンは適切な出力を生成します。PowerShellはコードを処理する前に(UTF-8でエンコードされていても)UTF-8に変換するようです。
デニス

@デニス・キンダ。PowerShellの内部ではすべてがUTF-16エンコードされているため、実際に変換が行われている可能性があります。
AdmBorkBork 2017年

2

Japt、197 196 195バイト

`0fxtc
pkq ol]¸ky2ci2mk?mZ.
0xtc
lkq ? ^eX ?pmXae2c _c.
=l'2] fxff]g] ^_]g1pui AggZiui2] eamX!`+`
F]e o]i lmzp] ]i\`µeu1s][µ u s][µ Gaqpa´X!`³ d0`Oa _ium[¿ ]lx2ci `1`hYic,
`2" p""[=F-~]"_c +852 d

オンラインでテストしてください!で置き換えられた3つの0x95バイトが含まれています?


これに印刷できないものはありますか?
Conor O'Brien

@ ConorO'Brien Yep、明確化
ETHproductions

2

///324 323バイト

/P/ρ//p/π//n/η//z/Σε γνωρίζω από τnν //k/Και σαν pPώτα ανδPειωμένn,
χαίPε ω χαίPε ΛευτεPιά!/zκόψn
του σπαθιού τnν τPομεPή.
zόψn
pου με βιά μετράει τn γn.
Αp' τα κόκκαλα βγαλμένn,
των Ελλήνων τα ιεPά!kkk

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

たぶんもっとゴ​​ルフができるかもしれませんが、私は疲れています。

などの文字kを長いテキストに置き換えることで機能します。ギリシャ語の文字はのような文字よりもバイト数が多いため、いくつかの文字置換も行いましたp。十分に単純です。

@ErictheOutgolferのおかげで-1バイト。


の後ΛευτεPιά!/に不要な改行があります。削除して、出力に先頭の改行が含まれないようにすることができます。
Erik the Outgolfer 2017年

@EriktheOutgolfer完了、ありがとう。
同志SparklePony 2017年

1

Bash + GNU iconv、214

a="�� ������� ��� ��� "
l="
��� ��� ����� �����������,
����� � ����� ��������!"
iconv -f GREEK<<<"$a����
��� ������� ��� �������.
$a���
��� �� ��� ������� �� ��.
��' �� ������� ��������,
��� ������� �� ����!$l$l$l"

これは単に iconvユーティリティを使用して、GREEKエンコーディング(1バイトあたりのバイト数)からutf-8に変換する繰り返しを変数に格納することで冗長性を少し取り除きます。

上から直接コピーしようとしないでください-貼り付けると、多くの印刷できないものが変更されます。代わりに、次のようにスクリプトを作成します。

base64 -d << EOF > greek.sh
YT0i0+Ug4+358d/m+SDh8Pwg9OftICIKbD0iCsrh6SDz4e0g8PH+9OEg4e3k8eXp+ezd7ecsCvfh
3/HlIPkg9+Hf8eUgy+X19OXx6dwhIgppY29udiAtZiBHUkVFSzw8PCIkYer8+OcK9O/1IPPw4ejp
7/0g9OftIPTx7+zl8d4uCiRh/PjnCvDv9SDs5SDi6dwg7OX08dzl6SD05yDj5y4KwfAnIPThIOr8
6urh6+Eg4uPh6+zd7ecsCvT57SDF6+ve7fntIPThIOnl8dwhJGwkbCRsIg==
EOF

のスペース-f GREEKは必要ありません。ヒアストリングの代わりにヒアドキュメントを使用すると、追加のバイトを節約できます。
Dennis

1

PHP、296バイト

<?=gzinflate(base64_decode("1Y+9DoJAEIR7Et7hrGyMz3gEiJKgiYWNlrYIAUXkL7zB7Cs5e0ZDZ22u2Nvdme/mcEFtcMMoiQQo8JDEoBQrqZEIDUaDTlLZovE9DiaJjYRiUeKJlu3uI5OI/gkDatZ87Xv4Sf5yreOq16AiNnN3R8xQo3UGZTXKPYhd6qR00dDxlOi1rSjR64ArRjQrjSyJ/uHIaY9cw7isqm5d1GxB5Ik2vhKycGslkP1bwx53qhiCzhl3w1WhC8NvzTqcSY1pVnb75/QX"));

PHP、349バイト

echo$y="Σε γνωρίζω από την"," κόψη\nτου σπαθιού την τρομερή.\n$y όψη\nπου με βιά μετράει τη γη.\nΑπ' τα κόκκαλα βγαλμένη,\nτων Ελλήνων τα ιερά!\n".$z="Και σαν πρώτα ανδρειωμένη,\nχαίρε ω χαίρε Λευτεριά!\n",$z.$z;

1

Python 2.7、190バイト

zlibの乱用。Hexdump:

00000000: efbb bf70 7269 6e74 2278 9cbd 8cb1 0e82  ...print"x......
00000010: 4010 44fb fb8a b5b2 31fc 7f6b 61a3 252d  @.D.....1..ka.%-
00000020: 4216 5ccf e5b8 701b 96e8 2568 5ca5 b4b7  B.\...p...%h\...
00000030: 7ac9 cc9b 2909 ba98 a5b9 66c0 b480 fa08  z...).....f.....
00000040: fdf2 f04e c719 a684 371e 9fdf 5065 1c48  ...N....7...Pe.H
00000050: eac2 95bf 838f 9fcc 1f08 5aae 0c2a 15b1  ..........Z..*..
00000060: 55d0 f9c2 edd3 1614 edb5 ef31 20b4 1d86  U..........1 ...
00000070: e11c fdce 698e 7008 a18e 4613 98a4 dab8  ....i.p...F.....
00000080: 2332 4c18 21c9 cb32 8c17 21ce ab7f c746  #2L.!..2..!....F
00000090: 0832 ac3c d1ac 24fc afc9 1bcf bfdc ec22  .2.<..$........"
000000a0: 2e64 6563 6f64 6528 227a 6970 2229 2e64  .decode("zip").d
000000b0: 6563 6f64 6528 2267 7265 656b 2229       ecode("greek")

@Dennisが指摘するように、UTF-8出力を正しく生成するには、これをターミナルで実行する必要があります。


これをどのように機能させますか?私が手UnicodeEncodeErrorをします
デニス

@Dennis TIOのPython 2は、たとえばrepl.itに比べるとかなり悪いです。Repl.itは、ソースに非ASCIIが含まれていて、上部に別のエンコーディングを指定しない場合に機能します。Ideoneとrepl.itを使用してみてください。
mbomb007

@ mbomb007これらのオンラインインタープリターがインタープリターを実行する前にソースコードを変更した場合、PPCGのために新しい言語が作成されました。いずれの場合でも、この回答の最初の3バイトはUTF-8バイトオーダマークですが、ソースコードは有効なUTF-8ではありません。
Dennis

@Dennis:端末をUTF-8に設定しています。TIOエラーは、仮想端末がASCIIに設定されていることが原因であると考えていますecho -ne '.encode("utf8")' >> code.py。中央に行を追加すると問題が解決します。UTF-8端末に依存することはあまりにもおかしいとは思いませんが、もしそうであれば、答えを修正します。
nneonneo

回答が1つの設定で機能する場合、それは有効です。引数はありません。@ mbomb007との会話は、Pythonがソースファイルを処理できなかったという誤った想定に基づいていましたが、正しく指摘したように、デコードのステップが問題の原因です。問題はいくつかの設定を微調整するほど簡単ではないようです。TIOのすべては、Pythonを含め、UTF-8デフォルトを使用します。
Dennis

1

Retina、199バイト


:pkq olWdeky=ci=mkhamT._:lkq ha XeR hapmRae=c Yc._0l'=W fxffWgW XYWghSic,_pui 4ggTiui=W eamR!###
:
Ia YiumUbu Wlx=ci fxtc_
#
_9We oWi lmzpW WiZmaeuhSic,_;u ;AaqpameR!
=
 p
;
sWUma 
2=`f

T`w`¶Α-ώ

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

Woohoo、200バイト弱。

説明

主なアイデアは、実際のUnicode文字をほとんど使用しないようにすることです。これは、どこで使用してもバイト数が増えるだけなのでです。代わりに、ギリシャ語の各文字をASCII文字または数字で表します。(それはΑアルファです)からの関連する文字がώちょうど62のコードポイントにまたがることがわかりました。これは、ASCIIの数字と文字の数である10 + 26 + 26です。もう1つのUnicode文字はです。これは、Retinaが改行を表すために使用します。これをに置き換えることで、さらに数バイトを節約できます_。次に、w文字変換段階の省略形には、置換として使用した63文字が正確に含まれ、3バイトの2バイト文字(およびギリシャ文字の範囲の両端)ます。

したがって、この置換は最後の段階で行われるため、コードの大部分はかなり判読できません。これを元に戻して、コードをもう少しわかりやすくしましょう。


:του σπαθιού=ην=ρομερή.¶:που με βιά μετράει=η γη.¶Απ'=α κόκκαλα βγαλμένη,¶των Ελλήνων=α ιερά!###
:
Σε γνωρίζω από=ην κόψη¶
#
¶Και σαν πρώτα ανδρειωμένη,¶;ω ;Λευτεριά!
=
 τ
;
χαίρε 
2=`κ

これは、出力したい内容に少し似ています。最初の段階では、全体的なフレームワークを設定します。これには、出力のすべての固有部分と、繰り返し部分のいくつかのプレースホルダーが含まれています。

  • :1行目と3行目を表します。3行目にはがないため、最終的には少し異なりκます。これは、最後のステージκが結果の2番目を削除する理由です。
  • # 3回繰り返される最後の2行を表します。
  • ;χαίρεこれらの行で繰り返されるを表します。
  • =で始まる単語τ(およびその前のスペース)を表します。あるだけで、単一のバイトを保存するには、このため、これらを十分に。

0

Jolf、187バイト

ギリシャ語のコードページにエンコードされていると役立ちます。

ΆΆγ"Σε γνωρίζω από την κόψη
'του σπαθιού την τρομερή.
"-γ'κ«που με βιά μετράει τη γη.
Απ' τα κόκκαλα βγαλμένη,
των Ελλήνων τα ιερά!
»*3"Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!

ここでお試しください! 私にとってはすべてギリシャ語です...


出力はUTF-8である必要があります。ブラウザ内通訳でさえそれは可能ですか?私の知る限り、ブラウザ内のJavaScriptはUTF-16を使用しています。
Dennis

@デニス私はOPに説明を求めました、そして彼はそれはおそらく大丈夫
Conor O'Brien


0

バブルガム194 187バイト

00000000: d58e 3542 0541 1005 f33d c590 e070 45dc  ..5B.A...=...pE.
00000010: dd2d 2444 d77d f706 f5ae c4f4 a019 f18f  .-$D.}..........
00000020: daab 8b47 7247 4aaf 3dad f146 a13d 47ac  ...GrGJ.=..F.=G.
00000030: 551d 3a6d 52d2 3b1a 1d6a 9732 f2f5 a82d  U.:mR.;..j.2...-
00000040: a70d ad12 5351 fbf2 e87b 4b9b 5a63 a423  ....SQ...{K.Zc.#
00000050: d71a afcb d1ff dc6f ea6a a0da a523 a1e6  .......o.j...#..
00000060: 39e4 81f7 4c4e 1df6 0d55 7aea 9956 67ac  9...LN...Uz..Vg.
00000070: 1107 2d1a 1a62 5a2b 13d2 9076 bcd0 532e  ..-..bZ+...v..S.
00000080: 7a5d ed99 fe15 2d2d aff4 567e ddd6 e486  z]....--..V~....
00000090: 9f8a b827 b617 1bc4 365c d59a 8ec3 8ad5  ...'....6\......
000000a0: 645a 3303 edfd a1ee 10f3 667d a73d f7a7  dZ3.......f}.=..
000000b0: e281 5c5b da0c e47a 92d9 1f              ..\[...z...

あなたはこのhexdumpを逆にすることができます xxd -rます。

ZopfliにリダイレクトしてくれたDennisに感謝します:)


9
他の誰かに投稿する機会を与えてください。
mbomb007 2017年

@ mbomb007 OPは通常のライバルなので、誰でも私を倒すことができます:P
Erik the Outgolfer

2
ソリューションを投稿する前に数日待って、他の人にその言語を試す機会を与えるべきでした。チャレンジを投稿し、直後に本当に短い答えを投稿するのはクールではありません。
mbomb007
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.