Imprime el himno nacional griego

8

El 25 de marzo de 1821, Grecia libró su gran guerra de independencia . Para honrar esto, su tarea es imprimir el himno nacional griego:

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

Esta es mi propia versión del himno (puntuación, mayúsculas), aunque las letras son las originales.

  • Está prohibido imprimir o devolver este texto, por si acaso.
  • El texto impreso debe ser exactamente como el anterior, con una nueva línea final opcional.
  • La salida debe estar en UTF-8, a menos que no sea compatible, en cuyo caso la salida debe estar codificada en la alternativa compatible más cercana.
Erik el Outgolfer
fuente
66
"Está prohibido imprimir o devolver este texto". ¡Te estoy mirando, Mathematica!
steenbergh
2
@ETHproductions en mi opinión, es lo mismo, pero más restrictivo hacia los idiomas elegibles para competir ...
steenbergh
44
Supongo que ninguno de los langs de golf tiene diccionarios de palabras extranjeras , ¿todavía? Tisk Tisk.
mbomb007
44
Estoy bastante seguro de que casi todos los idiomas pueden generar este texto en UTF-8. Por ejemplo, Σen ISO-8859-1, cuando se interpreta en UTF-8, es Σ. ( Herramienta útil )
ETHproductions

Respuestas:

7

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

Pruébalo en línea!

Dennis
fuente
Hay algunos juegos de golf realmente difíciles (... ... ṃ€... ...) ... ¡Felicidades por la respuesta más corta (que merece más votos a favor)!
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))

Pruébalo en línea!
Use la misma técnica de repetición que usó mbomb007 , pero reemplacé todos los caracteres superiores a 47 (todas las letras griegas), u913 ~ u974 con u48 ~ u109, y luego deshaga esto antes de imprimir

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

Pruébalo en línea!

Esto genera el himno con una nueva línea final. Convertí la función de devolver a Stringa a voidpara que imprimiera la Cadena en lugar de devolverla y guardar bytes.

Jugarán más golf por la mañana Los golfistas no duermen: P

Explicación (obsoleta)

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 llegar a esta cadena reducida, verifiqué manualmente restando qué números de los puntos de código serían los mejores. Estos valores tendrían que estar entre y ~. Con el fin de hacer que la detección de si es un char puntuacion ( ., ', !, ) o no, sería mejor si todos los valores mentido anteriormente .(46). Y no debería haber ninguna \s en la Cadena porque, de lo contrario, Java cree que son secuencias de escape, por lo que tengo que escapar de ellas. Finalmente se me ocurrió restar 866 de los caracteres griegos.

usuario41805
fuente
¿Por qué no convertirlo en un Lambda?
Pavel
@ ГригорийПерельман Porque es Java 7: P
usuario41805
1
@ ГригорийПерельман Porque el resultado incluye un personaje lambda y las lambdas en lambdas salen terriblemente mal
Matthew Roh
3

Python 3, 350 345 bytes

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

Pruébalo en línea

mbomb007
fuente
3

Lote de Windows 10, 424 404 bytes

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

Notas:

  • No use el Bloc de notas para guardar esto, agregará una lista de materiales que hará que el script falle.
  • La chcpllamada falla si su símbolo del sistema está configurado para usar fuentes ráster. Cámbielos a, por ejemplo, Lucida Console (no requiere reinicio).
  • El archivo por lotes parece requerir una versión razonablemente nueva de Windows; Windows XP no estaba nada contento con eso chcp 65001.

Editar: Guardado 20 bytes gracias a @ ConorO'Brien.

Neil
fuente
¿No es esto solo 420 bytes?
Sr. Xcoder
@ Mr.Xcoder Mi editor de texto de Windows utiliza finales de línea de MS-DOS, y no puedo molestarme en reclamar el pequeño ahorro.
Neil
¿Por qué no solo @set t="Και σαν πρώτα ανδρειωμένη," "χαίρε ω χαίρε Λευτεριά!"y reemplazar %t% %u%con %t%?
Conor O'Brien
@ ConorO'Brien Eso es genial. ¡Gracias!
Neil
3

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

Pruébalo en línea!

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

Pruébalo en línea!

Esto toma la cadena unida como una charmatriz, la alimenta una a la vez a través de un bucle |%{...}cada iteración, ya sea produciendo el carácter directamente $_o incrementándolo 870antes de volver a emitirlo como char(según sea una puntuación o no). Algunos otros trucos se configuran $acomo una frase de repetición y eliminan el triple de las últimas tres estrofas. Esos son todos -joinjuntos en una cadena completa y luego la salida es implícita.

Editar - Woo! ¡Esta es la respuesta número 1100 de PowerShell en el sitio! :RE

AdmBorkBork
fuente
¿Es solo la 12a respuesta? ;)
Conor O'Brien
Su última versión produce el resultado adecuado. Parece que PowerShell convierte el código a UTF-8 (incluso si está codificado en UTF-8) antes de procesarlo.
Dennis
@ Dennis Kinda. Todo lo que hay debajo del capó en PowerShell está codificado en UTF-16 , por lo que es probable que haya una conversión.
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

¡Pruébelo en línea! Contiene tres bytes 0x95 que han sido reemplazados por ?.

ETHproducciones
fuente
¿Hay no imprimibles en esto?
Conor O'Brien
@ ConorO'Brien Sí, aclarado
ETHproductions
2

/// , 324323 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

Pruébalo en línea!

Tal vez podría jugar más al golf, pero estoy cansado.

Funciona reemplazando caracteres como kcon texto más largo. También hice algunas sustituciones de caracteres, porque los caracteres griegos tienen más bytes que los caracteres similares p. Suficientemente simple.

-1 byte gracias a @ErictheOutgolfer.

Camarada SparklePony
fuente
Tiene una nueva línea innecesaria después ΛευτεPιά!/, puede eliminarla para que la salida no tenga una nueva línea principal.
Erik the Outgolfer
@EriktheOutgolfer Hecho, gracias.
Camarada SparklePony
1

Bash + GNU iconv, 214

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

Esto solo usa la iconvutilidad para convertir la codificación GRIEGA (byte por char) a utf-8, junto con la eliminación de un poco de redundancia almacenando repeticiones en variables.

No intente copiar directamente de lo anterior: muchas imprenta no se imprimen al pegar. En su lugar, cree el script de la siguiente manera:

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
fuente
El espacio en -f GREEKno es obligatorio. El uso de un heredoc en lugar de una herejía ahorra un 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
fuente
1

Python 2.7, 190 bytes

abuso de 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 señala @Dennis, esto debe ejecutarse en un terminal para que produzca correctamente la salida UTF-8.

nneonneo
fuente
¿Cómo haces que esto funcione? Me sale un UnicodeEncodeError .
Dennis
Python 2 de @Dennis TIO es bastante malo en comparación con repl.it, por ejemplo. Repl.it funciona si la fuente contiene no ASCII y no especifica otra codificación en la parte superior. Intenta usar Ideone y repl.it.
mbomb007
@ mbomb007 Si estos intérpretes en línea realizan modificaciones en el código fuente antes de ejecutar el intérprete, han creado un nuevo idioma para PPCG. En cualquier caso, los primeros tres bytes de esta respuesta son una marca de byte-otder UTF-8, pero el código fuente no es UTF-8 válido.
Dennis
@ Dennis: Tengo mi terminal configurado en UTF-8. Creo que el error de TIO proviene del terminal virtual configurado en ASCII; agregar una echo -ne '.encode("utf8")' >> code.pylínea en el medio resuelve el problema. No creo que confiar en un terminal UTF-8 sea una locura, pero si lo es, enmendaré la respuesta.
nneonneo
Si su respuesta funciona en una configuración, es válida; sin argumentos. Mi conversación con @ mbomb007 se basó en mi suposición equivocada de que Python no podía procesar el archivo fuente, pero como usted señaló correctamente, el paso de decodificación es lo que está causando problemas. Sin embargo, el problema no parece ser tan simple como ajustar algunas configuraciones. Todo en TIO usa el valor predeterminado UTF-8, incluido 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`¶Α-ώ

Pruébalo en línea!

Woohoo, poco menos de 200 bytes.

Explicación

La idea principal es evitar los caracteres Unicode reales en su mayor parte, porque simplemente explotan el recuento de bytes si se usan en cualquier lugar. En cambio, represento cada letra griega por una letra o dígito ASCII. Resulta que las letras relevantes de Α(eso es un alfa) ώabarcan exactamente 62 puntos de código. Eso es 10 + 26 + 26, el número de dígitos y letras ASCII. El otro personaje Unicode que tenemos es el que Retina usa para representar los avances de línea. Podemos guardar algunos bytes más reemplazando eso con _. Luego, la taquigrafía wen las etapas de transliteración contiene exactamente los 63 caracteres que hemos usado como sustituciones, y podemos representar el rango al que se asigna utilizando solo 3 caracteres de 2 bytes ( y los dos extremos del rango de letras griegas).

Por lo tanto, el código es bastante ilegible en su mayor parte, ya que esta sustitución se realiza en la última etapa. Vamos a deshacer esto para darle un poco más de sentido al código:


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

Eso se parece un poco más a las cosas que queremos generar. La primera etapa simplemente configura el marco general. Contiene todas las partes únicas de la salida, así como algunos marcadores de posición más para partes repetidas:

  • :representa la primera y tercera línea. Terminan siendo ligeramente diferentes, porque κfalta la tercera línea, por lo que la última etapa elimina la segunda κen el resultado.
  • # representa las dos últimas líneas, que se repiten tres veces.
  • ;representa lo repetido χαίρεen esas líneas.
  • =representa una palabra que comienza con τ(y el espacio que la precede). Hay simplemente bastante de los de este para salvar a un solo byte.
Martin Ender
fuente
0

Jolf, 187 bytes

Ser codificado en la página de códigos griega ayuda.

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

Pruébalo aquí! No entiendo nada...

Conor O'Brien
fuente
La salida debe estar en UTF-8. ¿Es eso posible incluso con intérpretes en el navegador? Hasta donde yo sé, JavaScript en el navegador usa UTF-16.
Dennis
@Dennis Le pedí al OP que me aclarara, y él dijo que probablemente está bien
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))

Pruébalo en línea!

Mi opinión sobre el enfoque de Rod .

Lynn
fuente
0

Chicle , 194187 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...

Puedes revertir este hexdump con xxd -r .

Gracias Dennis por redirigirme a Zopfli :)

Erik el Outgolfer
fuente
99
Dale a alguien más la oportunidad de publicar, ¿quieres?
mbomb007
@ mbomb007 OP es solo un competidor normal, así que dejo que cualquiera me gane: P
Erik the Outgolfer
2
Deberías haber esperado un par de días antes de publicar tu solución, dando a alguien más la oportunidad de probar ese idioma. No es genial publicar un desafío y publicar una respuesta realmente corta inmediatamente después.
mbomb007