Odszyfruj neurotyczne żaby
Teraz, gdy Puzzling.SE w końcu złamał mój obsesyjny na punkcie płazów szyfr , napiszmy program lub funkcję, aby go odszyfrować!
(Jeśli chcesz spojrzeć na układankę, zanim zostanie zepsuta, kliknij teraz powyższy link.)
Jak działa szyfr
W Neurotic Frogs O ught Aby Rel x w M ud Wanny ( „Neurotic Żaby” w skrócie), każda litera jest szyfrowana w postaci jednego lub dwóch słów:
- Długość słowa bez kursywy oznacza literę.
neurotic
=> 8 liter =>H
frogs
=> 5 liter =>E
perpendicular
=> 13 liter =M
- Słowo zawierające kursywę modyfikuje następujące słowo, dodając 10, jeśli kursywą było nieparzyste lub 20, jeśli kursywą było parzyste. Dowolne lub wszystkie słowa mogą być pisane kursywą. Po kursie zawsze występuje słowo bez kursywy.
*o*ught to
=> nieparzyste, 2 => 12 =>L
lo*u*nging calms
=> parzysty, 5 => 25 =>Y
Każde słowo tekstu jawnego odpowiada zdaniu tekstu zaszyfrowanego, a każde zdanie tekstu jawnego odpowiada akapitowi tekstu zaszyfrowanego.
Format wejściowy
Twój program lub funkcja powinna wprowadzić komunikat w Neurotic Frogs, sformatowany w Markdown. Dane wejściowe będą składały się wyłącznie z drukowalnego ASCII i nowego wiersza.
- Słowa to ciągi znaków pasujące do wyrażenia regularnego
[A-Za-z0-9']
.- Liczby i litery liczą się do długości słowa.
QB64
reprezentujeD
. - UWAGA: Apostrofy nie liczą się do długości słowa.
Isn't
reprezentujeD
nieE
.
- Liczby i litery liczą się do długości słowa.
- Litery kursywą są zawinięte w parę gwiazdek (
*letters*
).- Jedna lub więcej kolejnych liter może być pisanych kursywą, aż do całego słowa (
masseus*es*
,*all*
); wiele nie następujących po sobie liter w słowie może być również kursywą (g*e*n*e*rates
). - Kursywa nigdy nie obejmuje wielu słów, nigdy nie zawiera interpunkcji i nigdy nie zawiera apostrofów.
- Niesparowane gwiazdki i wiele sąsiadujących gwiazdek nigdy nie wystąpią.
- Jedna lub więcej kolejnych liter może być pisanych kursywą, aż do całego słowa (
- Interpunkcyjny jest którykolwiek z następujących znaków:
.,?!:;-()"
.- Słowa w zdaniu są oddzielone jednym lub kilkoma znakami interpunkcyjnymi i / lub pojedynczym odstępem. Przykłady:
*all* welcomed
,toad*s*, newts
,Ever*y*one--frogs
,cap... bliss
,they're (I
- Zdania kończą się jedną lub kilkoma znakami interpunkcyjnymi i są oddzielone podwójną spacją:
Th*e* Montgomery A*m*phibian Salon! Come luxuriate today!
- Akapity są oddzielone pojedynczym znakiem nowej linii. (Ostatnie zdanie akapitu wciąż ma jeden lub więcej znaków interpunkcyjnych na końcu).
- Słowa w zdaniu są oddzielone jednym lub kilkoma znakami interpunkcyjnymi i / lub pojedynczym odstępem. Przykłady:
Inne znaki nie pojawią się na wejściu i nie muszą być obsługiwane.
Twój kod może, według własnego uznania, oczekiwać, że dane wejściowe będą miały pojedynczy znak nowej linii.
Format wyjściowy
Rezultatem odszyfrowania danych wejściowych będzie jedno lub więcej zdań. Litery tekstu jawnego mogą być dowolną kombinacją wielkich i małych liter. Słowa w zdaniu muszą być oddzielone pojedynczymi spacjami. Zdania muszą kończyć się kropką ( .
) i być oddzielone pojedynczym odstępem. Możesz podać końcowe spacje po ostatnim zdaniu. Twój wynik będzie w jednym wierszu, ale możesz wygenerować końcowy znak nowej linii.
Różne szczegóły
Twój kod może wykorzystywać dowolną standardową metodę wejścia i wyjścia. Musi otrzymywać dane wejściowe w postaci ciągu wielowierszowego, a nie listy lub innej struktury danych, i musi generować ciąg.
Najkrótszy kod w bajtach wygrywa!
Przypadki testowe
-->
Neurotic Frogs *O*ught To Rel*a*x In *M*ud Baths!
<--
HELLO.
-->
Business standards all*o*w only *adult* amphibians.
<--
HINT.
-->
Rejoice, *a*ll frogs an*d* toads also! Montgomery Sal*o*n opens up! Ha*pp*y throng fill*s* street ecstatically!
<--
GOOD JOB PPL.
-->
I like 3.1415926535897.
IM*O*, it's a *b*la*st*, yeah!
<--
ADAM. MAN.
-->
*I*, happily, *th*anks 2 u *e*ditin*g* specific wor*ding*--clarifying a *bit*--betterment :D!
<--
QUARTATA.
-->
Perpendicular l*ou*nging calms. *A* frog, a m*u*d cap... bliss! Wallowing g*e*n*e*rates happiness. Amphibian sp*a* isn't expensive--seventy d*o*llars--cheap! That'*s* not *a* large e*x*pens*e* from an*y* discerning fr*o*g's money, unlik*e* Super 8.
Ever*y*one--frogs, toad*s*, newts, *a*nd salamanders! G*e*t a wonderful shiat*s*u, or recei*v*e an other kind. Masseus*es* are her*e* today! Invite a fianc*e*e, supervisor, roommate, niece: *all* welcomed!
Y*o*u simply ne*v*er believed these p*o*ssibilitie*s*; they're (I *swear*) absolute truth! Th*e* Montgomery A*m*phibian Salon! Come luxuriate today!
<--
MY NAME IS INIGO MONTOYA. YOU KILLED MY FATHER. PREPARE TO DIE.