Imprima o hino nacional grego

8

Em 25 de março de 1821, a Grécia travou sua grande guerra de independência . Para honrar isso, sua tarefa é imprimir o hino nacional grego:

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

Esta é a minha própria versão do hino (pontuação, letras maiúsculas), embora a letra seja original.

  • É proibido proibir a impressão ou a devolução de textos incorporados.
  • O texto impresso deve ser exatamente como o descrito acima, com uma nova linha à direita opcional.
  • A saída deve estar em UTF-8, a menos que não possa ser totalmente suportada; nesse caso, a saída deve ser codificada na alternativa suportada mais próxima.
Erik, o Outgolfer
fonte
6
"Quaisquer built-in que imprima ou retorne este texto são proibidos" - Estou olhando para você, Mathematica!
22417
2
O @ETHproductions parece que é o mesmo, mas mais restritivo para os idiomas elegíveis para competir ... #
314
4
Suponho que nenhum dos idiomas de golfe ainda possua dicionários de palavras estrangeiras ? Tisk tisk.
mbomb007
4
Estou bastante certo de que quase todos os idiomas podem produzir este texto em UTF-8. Por exemplo, Σem ISO-8859-1, quando interpretado em UTF-8, é Σ. ( Ferramenta útil )
ETHproductions

Respostas:

7

Geléia , 180 174 163 bytes

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¤ị

Experimente online!

Dennis
fonte
Há algum golfe realmente difícil acontecendo (... ... ṃ€... ...) ... Parabéns pela resposta mais curta (que merece mais votos positivos)!
Erik the Outgolfer
4

Python 3 , 263 bytes

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

Experimente online!
Use a mesma técnica de repetição que mbomb007 usou , mas substituí todos os caracteres com mais de 47 (todas as letras gregas), u913 ~ u974 por u48 ~ u109 e desfazê-lo antes de imprimir

Cajado
fonte
4

Java 7, 320 319 300 294 293 bytes

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));}

Experimente online!

Isso gera o hino com uma nova linha à direita. Eu converti a função de retornar a Stringpara a voidpara imprimir a String em vez de retorná-la e salvar bytes.

Golf ainda mais pela manhã Golfistas não dormem: P

Explicação (desatualizada)

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;
}

Para chegar a essa String reduzida, verifiquei manualmente subtraindo quais números dos pontos de código seriam os melhores. Esses valores teriam que estar entre e ~. A fim de fazer a detecção de se um char é pontuação ( ., ', !, ) ou não, seria melhor se todos os valores mentiu acima .(46). E não deve haver nenhum \s na String, porque, caso contrário, o Java pensa que são sequências de escape, e então eu tenho que escapar delas. Finalmente, subi 866 dos caracteres gregos.

user41805
fonte
Por que não torná-lo um Lambda?
Pavel
@ ГригорийПерельман Porque é Java 7: P #
user41805:
1
@ ГригорийПерельман Porque a saída inclui um personagem lambda e lambdas em lambdas vá horrivelmente errado
Matthew Roh
3

Python 3, 350 345 bytes

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

Experimente online

mbomb007
fonte
3

Lote do Windows 10, 424 404 bytes

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

Notas:

  • Não use o Bloco de notas para salvar isso, ele adicionará uma BOM que fará com que o script falhe.
  • A chcpchamada falhará se o prompt de comando estiver configurado para usar fontes de varredura. Altere-os para, por exemplo, o Lucida Console (não requer reinicialização).
  • O arquivo em lotes parece exigir uma versão razoavelmente nova do Windows; O Windows XP não ficou nada satisfeito chcp 65001.

Editar: salvou 20 bytes graças a @ ConorO'Brien.

Neil
fonte
isso não é apenas 420 bytes?
Xcoder
@ Mr.Xcoder Meu editor de texto do Windows usa terminações de linha do MS-DOS, e não posso me incomodar em reivindicar a pequena economia.
Neil
Porque não basta @set t="Και σαν πρώτα ανδρειωμένη," "χαίρε ω χαίρε Λευτεριά!"e substituir %t% %u%com %t%?
Conor O'Brien
@ ConorO'Brien Isso é apenas gênio. Obrigado!
Neil
3

Bubblegum , 190 bytes

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  [email protected]...
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.....

Experimente online!

Dennis
fonte
3

PowerShell , 332 270 261 bytes

-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]})

Experimente online!

Isso pega a string munged como uma charmatriz, alimenta-a uma de cada vez através de um loop a |%{...}cada iteração, produzindo o caractere reto $_ou incrementando-o 870antes de o lançar novamente como a char(com base em se é uma pontuação ou não). Alguns outros truques são definidos $acomo uma frase repetida e des Triplicam as últimas três estrofes. Esses são todos -joinreunidos em uma sequência completa e, em seguida, a saída é implícita.

Editar - Woo! Esta é a 1100ª resposta do PowerShell no site! : D

AdmBorkBork
fonte
É apenas a 12ª resposta? ;)
Conor O'Brien
Sua versão mais recente produz a saída adequada. Parece que o PowerShell converte o código em UTF-8 (mesmo que esteja codificado em UTF-8) antes de processá-lo.
Dennis
@Dennis Kinda. Tudo sob o capô do PowerShell é codificado em UTF-16 , portanto é provável que ocorra uma conversão.
AdmBorkBork
2

Japt, 197 196 195 bytes

`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

Teste online! Contém três bytes 0x95 que foram substituídos por ?.

ETHproductions
fonte
Existem imprimíveis nisso?
Conor O'Brien
@ ConorO'Brien Yep, esclarecido
ETHproductions
2

/// , 324 323 bytes

/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

Experimente online!

Talvez pudesse jogar mais, mas estou cansado.

Funciona substituindo caracteres como ktexto mais longo. Também fiz algumas substituições de caracteres, porque os caracteres gregos têm mais bytes do que caracteres semelhantes p. Simples o suficiente.

-1 byte graças a @ErictheOutgolfer.

Camarada SparklePony
fonte
Você tem uma nova linha desnecessária depois ΛευτεPιά!/, é possível removê-la para que a saída não tenha uma nova linha principal.
Erik the Outgolfer
@EriktheOutgolfer Concluído, obrigado.
Camarada SparklePony
1

Bash + GNU iconv, 214

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

Isso apenas usa o iconvutilitário para converter da codificação GREEK (byte por caractere) para utf-8, além de remover um pouco de redundância armazenando repetições em variáveis.

Não tente copiar diretamente do acima exposto - muitos não imprimíveis são colados ao colar. Em vez disso, crie o script da seguinte maneira:

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
Trauma Digital
fonte
O espaço -f GREEKnão é necessário. Usar um heredoc em vez de um herestring salva um byte adicional.
Dennis
1

PHP, 296 bytes

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

PHP, 349 bytes

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

Python 2.7, 190 bytes

abuso 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")

Como o @Dennis aponta, isso precisa ser executado em um terminal para produzir corretamente a saída UTF-8.

nneonneo
fonte
Como você faz isso funcionar? Eu recebo um UnicodeEncodeError .
Dennis
O Python 2 do @Dennis TIO é muito ruim comparado ao repl.it, por exemplo. Repl.it funciona se a fonte contiver não ASCII e você não especificar outra codificação na parte superior. Então tente usar o Ideone e repl.it.
mbomb007
@ mbomb007 Se estes intérpretes online fizerem modificações no código fonte antes de executá-lo, eles criaram um novo idioma para os propósitos do PPCG. De qualquer forma, os três primeiros bytes desta resposta são uma marca UTF-8 byte-otder, mas o código-fonte não é UTF-8 válido.
Dennis
@ Dennis: Eu tenho meu terminal definido para UTF-8. Acredito que o erro do TIO é do terminal virtual que está sendo definido como ASCII - adicionar uma echo -ne '.encode("utf8")' >> code.pylinha no meio resolve o problema. Não acho que confiar em um terminal UTF-8 seja muito louco, mas, se for, alterarei a resposta.
nneonneo
Se sua resposta funcionar em uma configuração, é válida; sem argumentos. Minha conversa com @ mbomb007 foi baseada na minha suposição equivocada de que o Python não poderia processar o arquivo de origem, mas, como você apontou corretamente, a etapa de decodificação é o que está causando problemas. O problema não parece ser tão simples quanto ajustar algumas configurações. Tudo no TIO usa o padrão UTF-8, incluindo Python.
Dennis
1

Retina , 199 bytes


: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`¶Α-ώ

Experimente online!

Woohoo, pouco menos de 200 bytes.

Explicação

A idéia principal é evitar a maioria dos caracteres Unicode reais, porque eles apenas aumentam a contagem de bytes se forem usados ​​em qualquer lugar. Em vez disso, represento cada letra grega por uma letra ou dígito ASCII. Acontece que as letras relevantes de Α(que é um alfa) ώabrangem exatamente 62 pontos de código. Isso é 10 + 26 + 26, o número de dígitos e letras ASCII. O outro caractere Unicode que temos é o que o Retina usa para representar os feeds de linha. Podemos economizar mais alguns bytes substituindo-o por _. Em seguida, a abreviação wnos estágios de transliteração contém exatamente os 63 caracteres que usamos como substituições e podemos representar o intervalo para o qual é mapeado usando apenas 3 caracteres de 2 bytes ( e as duas extremidades do intervalo de letras gregas).

Portanto, o código é bastante ilegível na maior parte, pois essa substituição é feita no último estágio. Vamos desfazer isso para entender um pouco mais o código:


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

Parece um pouco mais com as coisas que queremos produzir. O primeiro estágio simplesmente configura a estrutura geral. Ele contém todas as partes exclusivas da saída, além de mais alguns espaços reservados para peças repetidas:

  • :representa a primeira e a terceira linha. Eles acabam sendo um pouco diferentes, porque κfalta a terceira linha, motivo pelo qual a última etapa remove a segunda κno resultado.
  • # representa as duas últimas linhas, que são repetidas três vezes.
  • ;representa o repetido χαίρεnessas linhas.
  • =significa uma palavra que começa com τ(e o espaço que a antecede). Existem apenas o suficiente para salvar um único byte.
Martin Ender
fonte
0

Jolf, 187 bytes

Ser codificado na página de códigos grega ajuda.

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

Experimente aqui! É tudo grego para mim ...

Conor O'Brien
fonte
A saída deve estar em UTF-8. Isso é possível com intérpretes no navegador? Até onde eu sei, o JavaScript no navegador usa UTF-16.
Dennis
@ Dennis Perguntei ao OP para esclarecimento, e ele disse que é provavelmente ok
Conor O'Brien
0

Python 3 , 246 bytes

q=b'Qc akwo]dw _nz rek '
print(''.join(chr(b+b//63*850)for b in
q+b'hzve\nrms qn_fgm{ rek romjco\.\n'+q+b"zve\nnms jc `gZ jcroZcg re ae.\n?n' r_ hzhh_i_ `a_ij[ke,\nrwk Cii\kwk r_ gcoZ!"+b'\nH_g q_k no|r_ _kbocgwj[ke,\nu_]oc w u_]oc IcsrcogZ!'*3))

Experimente online!

Minha opinião sobre a abordagem de Rod .

Lynn
fonte
0

Bubblegum , 194 187 bytes

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...

Você pode reverter esse hexdump com xxd -r.

Obrigado Dennis por me redirecionar para Zopfli :)

Erik, o Outgolfer
fonte
9
Dê a alguém a chance de postar, sim?
mbomb007
@ mbomb007 OP é apenas um concorrente normal, então deixei que alguém me vencesse: P
Erik the Outgolfer
2
Você deveria ter esperado alguns dias antes de postar sua solução, dando a alguém a chance de experimentar esse idioma. Não é legal postar um desafio e postar uma resposta muito curta imediatamente depois.
mbomb007