Stare irlandzkie błogosławieństwo

14

Nie wiem, kto wymyślił te słowa i nie jestem Irlandczykiem, ale daję wam irlandzkie błogosławieństwo:

May the road rise up to meet you
May the wind be always at your back
May the sun shine warm upon your face
The rains fall soft upon your fields
And until we meet again
May God hold you in the hollow of His hand

Planowałem opublikować to za kilka tygodni, ale dopiero teraz dotarło do mnie, że wczoraj był Dzień Świętego Patryka.

Zasady:

  • Utwórz powyższy tekst dokładnie.
    (Nie krępuj się złamać tę zasadę ze względu na spryt i zabawę).
  • Program musi sam wygenerować tekst. catnie jest poprawnym rozwiązaniem.
  • Rozwiązanie z najmniejszą liczbą postaci „wygrywa”.

Widziałem niewielkie różnice w brzmieniu między wersjami błogosławieństwa, które uzyskałem z Internetu, więc próbowałem je uśrednić. Proszę użyć wersji opublikowanej powyżej. Poza tym porzuciłem interpunkcję, żeby było trochę łatwiej.

Niech ogarnie cię szczęście Irlandczyków.

Joey Adams
źródło

Odpowiedzi:

2

05AB1E , 117 bajtów

'€¿“‡âŽÓ€î€†€€èÊ€‚“„€Ë‡´).ªðý“€¿€€†â£ƒ€¾€„‰Ã€î““€¿€€ïë€ï‡Š€›€ž‚ƒ““€¿€€‡µã»©ÃˆÉ€žŠÑ““€€¥·sŽ§š¼ˆÉ€ž™æ““€ƒ‡æ€¦‰Ã†î“).ªÀ»

Wypróbuj online!

'€¿                 "may"
“‡âŽÓ€î€†€€èÊ€‚“    "god hold you in the hollow of"
„€Ë‡´               "his hand"
)                   push stack into a list
.ª                  sentence-case each
ðý                  and join by spaces
“€¿€€†â£ƒ€¾€„‰Ã€î“  "may the road rise up to meet you"
“€¿€€ïë€ï‡Š€›€ž‚ƒ“  "may the wind be always at your back"
“€¿€€‡µã»©ÃˆÉ€žŠÑ“  "may the sun shine warm upon your face"
“€€¥·sŽ§š¼ˆÉ€ž™æ“   "the rains fall soft upon your fields
“€ƒ‡æ€¦‰Ã†î“        "and until we meet again"
)                   push stack into a list
.ª                  sentence-case each
À                   rotate list left
»                   join by newlines
                    implicitly print
dorycki
źródło
14

Python, 143 znaki

#coding:u8
print u'慍⁹桴⁥潲摡爠獩⁥灵琠敭瑥礠畯䴊祡琠敨眠湩⁤敢愠睬祡⁳瑡礠畯⁲慢正䴊祡琠敨猠湵猠楨敮眠牡灵湯礠畯⁲慦散吊敨爠楡獮映污潳瑦甠潰潹牵映敩摬ੳ湁⁤湵楴敷洠敥⁴条楡੮慍⁹潇⁤潨摬礠畯椠桴⁥潨汬睯漠⁦楈⁳慨摮'.encode("u16")[2:]

uruchom na codepad.org

TY
źródło
8

Haskell, 179 znaków

e="\n "++['='..'z']++e;i r=[e!!div r 64,e!!r]
main=putStr$i.fromEnum=<<"뒦뾁빭몁뷴릩끷뮸몁뺵끹봁벪몹끾봺뀒릾끹뭪끼뮳멁맪끦뱼릾븁릹끾봺뷁맦먰뀒릾끹뭪끸뺳끸뭮볪끼릷벁뺵봳끾봺뷁뫦먪뀙뭪끷릮본끫릱뱁븴뫹끺뵴볁뾴뺷끫뮪뱩븀놳멁뺳빮뱁뼪끲몪빁리릮변뒦뾁댴멁뭴뱩끾봺끮볁빭몁뭴뱱봼끴뫁덮븁뭦볩뀀"

Wykorzystuje to starożytną wspólną więź między Irlandczykami a Koreańczykami. Wszyscy wiedzieliście, że hodowla koronek i ziemniaków przyszła przez Koreę, a Kimchi po raz pierwszy wyprodukowano w Dublinie ... prawda?


  • Edycja: (197 -> 184) Nie ma potrzeby mod(dlaczego⁈ :-)); wyeliminowano osobne oświadczenie dla tekstu koreańskiego.
  • Edycja: (184 -> 179) Użyto bardziej kompaktowej reprezentacji książki kodów.
MtnViewMark
źródło
Hahaha, miło! Dlatego zazwyczaj ostrożnie mówię „rozwiązanie z najmniejszą liczbą postaci ” (odpowiednio zmodyfikowałem swój post). Wykorzystanie Unicode jest zawsze opcją, ale niewiele osób je bierze.
Joey Adams,
Czy nie można połączyć trzech naszych czterech znaków w jeden wykorzystujący w ten sposób?
FUZxxl,
@FUZxxl: Musisz być ostrożny: nie wszystkie wartości z zakresu 0x0 ~ 0x10FFFF są użyteczne. Niektóre są całkowicie zakazane (na przykład 0xD800 ~ 0xDFFF i każda wartość kończąca się na FFFE lub FFFF), inne mogą, ale nie muszą być legalne w definicji leksykalnej danego języka programowania. Wybieram tutaj Hangul, ponieważ jest to duży blok wartości bez dziur, a wszystko z pewnością legalne w dowolnej definicji ciągu Unicode. Ale ma tylko ~ 13 bitów.
MtnViewMark
MtnViewMark: Jeśli masz dwa kolejne surogaty, to jest to rzeczywiście ważne i byłoby pojedynczym punktem kodowym poza BMP. To wymagałoby użycia UTF-16 i może zmniejszyć twoje potrzeby o jeden;)
Joey
@Joey - Możesz używać surogatów tylko wtedy, gdy każdy ich wygląd został sparowany i we właściwej kolejności (jeden z 0xD800 ~ 0xDBFF, a drugi z 0xDC00 ~ 0xDFFF). Ale w przypadku Haskella jest to dyskusja: Stringsekwencja wartości skalarnych unicode (U + 0000 ~ U + D7FF i U + E000 ~ U + 10FFFF), a nie jednostek kodu UTF-16. Zauważ, że fromEnumzwraca wartość skalarną punktu kodowego znaku, a nie jakąś zakodowaną wartość.
MtnViewMark
4

INTERCALL , 3421 bajtów

Proste rozwiązanie. Generowane automatycznie, jeśli ktoś się zastanawia ...

INTERCALL IS A ANTIGOLFING LANGUAGE
SO THIS HEADER IS HERE TO PREVENT GOLFING IN INTERCALL
THE PROGRAM STARTS HERE:
PUSH LXXVII
PRINT
PUSH XCVII
PRINT
PUSH CXXI
PRINT
PUSH XXXII
PRINT
PUSH CXVI
PRINT
PUSH CIV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXIV
PRINT
PUSH CXI
PRINT
PUSH XCVII
PRINT
PUSH C
PRINT
PUSH XXXII
PRINT
PUSH CXIV
PRINT
PUSH CV
PRINT
PUSH CXV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXVII
PRINT
PUSH CXII
PRINT
PUSH XXXII
PRINT
PUSH CXVI
PRINT
PUSH CXI
PRINT
PUSH XXXII
PRINT
PUSH CIX
PRINT
PUSH CI
PRINT
PUSH CI
PRINT
PUSH CXVI
PRINT
PUSH XXXII
PRINT
PUSH CXXI
PRINT
PUSH CXI
PRINT
PUSH CXVII
PRINT
PUSH X
PRINT
PUSH LXXVII
PRINT
PUSH XCVII
PRINT
PUSH CXXI
PRINT
PUSH XXXII
PRINT
PUSH CXVI
PRINT
PUSH CIV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXIX
PRINT
PUSH CV
PRINT
PUSH CX
PRINT
PUSH C
PRINT
PUSH XXXII
PRINT
PUSH XCVIII
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH XCVII
PRINT
PUSH CVIII
PRINT
PUSH CXIX
PRINT
PUSH XCVII
PRINT
PUSH CXXI
PRINT
PUSH CXV
PRINT
PUSH XXXII
PRINT
PUSH XCVII
PRINT
PUSH CXVI
PRINT
PUSH XXXII
PRINT
PUSH CXXI
PRINT
PUSH CXI
PRINT
PUSH CXVII
PRINT
PUSH CXIV
PRINT
PUSH XXXII
PRINT
PUSH XCVIII
PRINT
PUSH XCVII
PRINT
PUSH XCIX
PRINT
PUSH CVII
PRINT
PUSH X
PRINT
PUSH LXXVII
PRINT
PUSH XCVII
PRINT
PUSH CXXI
PRINT
PUSH XXXII
PRINT
PUSH CXVI
PRINT
PUSH CIV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXV
PRINT
PUSH CXVII
PRINT
PUSH CX
PRINT
PUSH XXXII
PRINT
PUSH CXV
PRINT
PUSH CIV
PRINT
PUSH CV
PRINT
PUSH CX
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXIX
PRINT
PUSH XCVII
PRINT
PUSH CXIV
PRINT
PUSH CIX
PRINT
PUSH XXXII
PRINT
PUSH CXVII
PRINT
PUSH CXII
PRINT
PUSH CXI
PRINT
PUSH CX
PRINT
PUSH XXXII
PRINT
PUSH CXXI
PRINT
PUSH CXI
PRINT
PUSH CXVII
PRINT
PUSH CXIV
PRINT
PUSH XXXII
PRINT
PUSH CII
PRINT
PUSH XCVII
PRINT
PUSH XCIX
PRINT
PUSH CI
PRINT
PUSH X
PRINT
PUSH LXXXIV
PRINT
PUSH CIV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXIV
PRINT
PUSH XCVII
PRINT
PUSH CV
PRINT
PUSH CX
PRINT
PUSH CXV
PRINT
PUSH XXXII
PRINT
PUSH CII
PRINT
PUSH XCVII
PRINT
PUSH CVIII
PRINT
PUSH CVIII
PRINT
PUSH XXXII
PRINT
PUSH CXV
PRINT
PUSH CXI
PRINT
PUSH CII
PRINT
PUSH CXVI
PRINT
PUSH XXXII
PRINT
PUSH CXVII
PRINT
PUSH CXII
PRINT
PUSH CXI
PRINT
PUSH CX
PRINT
PUSH XXXII
PRINT
PUSH CXXI
PRINT
PUSH CXI
PRINT
PUSH CXVII
PRINT
PUSH CXIV
PRINT
PUSH XXXII
PRINT
PUSH CII
PRINT
PUSH CV
PRINT
PUSH CI
PRINT
PUSH CVIII
PRINT
PUSH C
PRINT
PUSH CXV
PRINT
PUSH X
PRINT
PUSH LXV
PRINT
PUSH CX
PRINT
PUSH C
PRINT
PUSH XXXII
PRINT
PUSH CXVII
PRINT
PUSH CX
PRINT
PUSH CXVI
PRINT
PUSH CV
PRINT
PUSH CVIII
PRINT
PUSH XXXII
PRINT
PUSH CXIX
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CIX
PRINT
PUSH CI
PRINT
PUSH CI
PRINT
PUSH CXVI
PRINT
PUSH XXXII
PRINT
PUSH XCVII
PRINT
PUSH CIII
PRINT
PUSH XCVII
PRINT
PUSH CV
PRINT
PUSH CX
PRINT
PUSH X
PRINT
PUSH LXXVII
PRINT
PUSH XCVII
PRINT
PUSH CXXI
PRINT
PUSH XXXII
PRINT
PUSH LXXI
PRINT
PUSH CXI
PRINT
PUSH C
PRINT
PUSH XXXII
PRINT
PUSH CIV
PRINT
PUSH CXI
PRINT
PUSH CVIII
PRINT
PUSH C
PRINT
PUSH XXXII
PRINT
PUSH CXXI
PRINT
PUSH CXI
PRINT
PUSH CXVII
PRINT
PUSH XXXII
PRINT
PUSH CV
PRINT
PUSH CX
PRINT
PUSH XXXII
PRINT
PUSH CXVI
PRINT
PUSH CIV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CIV
PRINT
PUSH CXI
PRINT
PUSH CVIII
PRINT
PUSH CVIII
PRINT
PUSH CXI
PRINT
PUSH CXIX
PRINT
PUSH XXXII
PRINT
PUSH CXI
PRINT
PUSH CII
PRINT
PUSH XXXII
PRINT
PUSH LXXII
PRINT
PUSH CV
PRINT
PUSH CXV
PRINT
PUSH XXXII
PRINT
PUSH CIV
PRINT
PUSH XCVII
PRINT
PUSH CX
PRINT
PUSH C
PRINT
END

łał

TuxCrafting
źródło
3

GolfScript (204 znaków)

Zawiera znaki niedrukowalne, więc kopiowanie-wklejanie może nie działać:

:k'May the road rise up to meet you
wind be always ar back¢ sun shin¬armÈon€face
Tåainsll soft¡ields
Aäuntil we meet ag²áGod holdø inñlow of His hand'{k{{k$}*0:k;}{127.2$<{-:k}*;}if}/](+

Kodowane w standardzie Base64:

OmsnTWF5IHRoZSByb2FkIHJpc2UgdXAgdG8gbWVldCB5b3UKnwh3aW5kIGJlIGFsd2F5cyBhnAVy
IGJhY2uiCXN1biBzaGlurANhcm3IA29upAZmYWNlClTlBGFpbnONA2xsIHNvZnShDGllbGRzCkHk
A3VudGlsIHdlIG1lZXQgYWeyA+EFR29kIGhvbGT4BCBpbvEFjgNsb3cgb2YgSGlzIGhhbmQne2t7
e2skfSowOms7fXsxMjcuMiQ8ey06a30qO31pZn0vXSgr

Naprawdę jest mniej nadmiarowości, niż można się spodziewać w ciągu. Myślę, że oszczędności gzip wynoszą 2/3 z Lempel-Ziv i 1/3 z kodowania Huffmana; to, czego używam, to w zasadzie LZ, ale mam większy narzut niż format gzip.

Zauważ, że jest to pierwsze rozwiązanie, które zajmuje mniej bajtów niż dane wyjściowe.

Peter Taylor
źródło
2

Bash / Sed, 206 znaków

Nie udało mi się pokonać Petera Taylora, ale podobnie jak jego rozwiązanie, ma mniej bajtów niż oryginał. Ale nie użyłem znaków niedrukowalnych.
sedprzydał się w podobnym wyzwaniu „nie obcy kodegolf” Ale tam użyłem go dwa razy, aby skompresować listę zamienników. Tutaj tekst jest za krótki na tę sztuczkę.

sed 's/Z/May the /;s/W/ uponYr f/;s/Y/ you/'<<X
Zroad rise up to meetY
Zwind be always atYr back
Zsun shine warmWace
The rains fall softWields
And until we meet again
May God holdY in the hollow of His hand
ugoren
źródło
2

PHP, 431 425 bajtów

<?php $s="May therodisupm\nwnblckfTAgGH";$p=array('01234563','3cd8h328c73m','jj','3e6643');$b=str_split('s781937ab63cd348v28cfsgah93i631jg12b314328c73i1klfsbch3b5ah63g17et1k6fn56371ahb3m1u3b8m4ta6j9bfoh93ch4aj3g6v1p1ahf0123q89358j9328c3ah3456358u8g38m3rab351h9');foreach($b as $x){$x=b($x);if($x>27){$c=str_split($p[$x-28]);foreach($c as $y){echo $s[b($y)];}}else{echo $s[$x];}}function b($a){return base_convert($a,36,10);}

Podejście mapowania i konwersji bazowej do przechowywania informacji. Nie udało mi się jednak utrzymać bardzo małego rozmiaru programu.

Mauris
źródło
1

Haskell - 284

s n=words"And God His May The again always at back be face fall fields hand hold hollow in meet of rains rise road shine soft sun the to until up upon warm we wind you your"!!(fromEnum n-48)
main=mapM_(putStrLn.unwords.map s)$words"3IEDLJAQ 3IP967R8 3IHFNMR: 4C;GMR< 0KOA5 31>Q@I?B2="

Niestety, jest to znacznie dłużej niż wynik lub wstawianie napisu dosłownie. Nawet same literały łańcuchowe (bez cudzysłowów) mają w sumie dwa znaki dłuższe niż wejście. Jak to możliwe?

Joey Adams
źródło
1

Quetzalcoatl , 218 bajtów

"May the road rise up to meet you\nMay the wind be always at your back\nMay the sun shine warm upon your face\nThe rains fall soft upon your fields\nAnd until we meet again\nMay God hold you in the hollow of His hand"

Ciągi są domyślnie drukowane.

Lub pyth, 217 bajtów

"May the road rise up to meet you\nMay the wind be always at your back\nMay the sun shine warm upon your face\nThe rains fall soft upon your fields\nAnd until we meet again\nMay God hold you in the hollow of His hand
Nikogo tu nie ma
źródło
1

Keg , 175 znaków

‘3p‘®m‘00‘®t¶©m  ©t  2½;4•;up to 2m;you\n©m  ©t  2⬩;be 0Ȧ;at 0B;0∞;\n©m  ©t  sun kƝ;4Ȧ;0M;0B;0Ƚ;\nThe A④;2÷;4l;0M;0B;8R;\nAnd 0🄄;we 2m;0¡;\n©m  God 1④;you in ©t  dɅ;of His 0║;

Dzięki Bogu wszystkie długie słowa znajdują się w słowniku Keg. Po prostu używa kompresji ciągów, aby zmniejszyć długość.

TIO obecnie nie działa, ponieważ wymaga aktualizacji.

Wypróbuj online!

Lyxal
źródło
0

Wren , 248 bajtów

Przyjęcie tej metody.

System.print("Zroad rise up to meetY\nZwind be always atYr back\nZsun shine warmWace\nThe rains fall softWields\nAnd until we meet again\nMay God holdY in the hollow of His hand".replace("Z","May the ").replace("W"," uponYr f").replace("Y"," you"))

Wypróbuj online!


źródło