Descifrar ranas neuróticas
Ahora que Puzzling.SE finalmente ha descifrado mi cifrado obsesionado con los anfibios , ¡escribamos un programa o función para descifrarlo!
(Si desea ver el rompecabezas antes de que se lo estropee, haga clic en el enlace anterior ahora)
Cómo funciona el cifrado
En Neurotic ranas O ught Para Rel una x en M ud Baños ( "neurótica ranas" para abreviar), cada letra es encriptada como una o dos palabras:
- La longitud de una palabra sin cursiva representa una letra.
neurotic
=> 8 letras =>H
frogs
=> 5 letras =>E
perpendicular
=> 13 letras =M
- Una palabra que contiene cursiva modifica la siguiente palabra, agregando 10 si la palabra en cursiva tenía una longitud impar o 20 si la palabra en cursiva tenía una longitud par. Cualquiera o toda la palabra puede estar en cursiva. Una palabra en cursiva siempre va seguida de una palabra sin cursiva.
*o*ught to
=> impar, 2 => 12 =>L
lo*u*nging calms
=> par, 5 => 25 =>Y
Cada palabra de texto sin formato corresponde a una oración de texto cifrado, y cada oración de texto sin formato corresponde a un párrafo de texto cifrado.
Formato de entrada
Su programa o función ingresará un mensaje en Neurotic Frogs, formateado en Markdown. La entrada consistirá solo en ASCII imprimible y líneas nuevas.
- Las palabras son series de caracteres que coinciden con la expresión regular
[A-Za-z0-9']
.- Los números y las letras cuentan para la longitud de una palabra.
QB64
representaD
. - NOTA: Los apóstrofes no cuentan para la longitud de una palabra.
Isn't
representaD
, noE
.
- Los números y las letras cuentan para la longitud de una palabra.
- Las letras en cursiva se envuelven en un par de asteriscos (
*letters*
).- Una o más letras consecutivas pueden estar en cursiva, hasta una palabra completa (
masseus*es*
,*all*
); múltiples letras no consecutivas en una palabra también pueden estar en cursiva (g*e*n*e*rates
). - Las cursivas nunca abarcan varias palabras, nunca incluyen signos de puntuación y nunca incluyen apóstrofes.
- Los asteriscos no apareados y los asteriscos adyacentes múltiples nunca ocurrirán.
- Una o más letras consecutivas pueden estar en cursiva, hasta una palabra completa (
- Puntuacion es cualquiera de los siguientes caracteres:
.,?!:;-()"
.- Las palabras dentro de una oración están separadas por uno o más caracteres de puntuación y / o un solo espacio. Ejemplos:
*all* welcomed
,toad*s*, newts
,Ever*y*one--frogs
,cap... bliss
,they're (I
- Las oraciones terminan con uno o más caracteres de puntuación y están separadas por un doble espacio:
Th*e* Montgomery A*m*phibian Salon! Come luxuriate today!
- Los párrafos están separados por una sola línea nueva. (La última oración de un párrafo todavía tiene uno o más caracteres de puntuación al final).
- Las palabras dentro de una oración están separadas por uno o más caracteres de puntuación y / o un solo espacio. Ejemplos:
Otros caracteres no aparecerán en la entrada y no necesitan ser manejados.
Su código puede, a su discreción, esperar que la entrada tenga una nueva línea final.
Formato de salida
El resultado de descifrar la entrada será una o más oraciones. Las letras de texto sin formato pueden ser cualquier combinación de mayúsculas y minúsculas. Las palabras dentro de una oración deben estar separadas por espacios individuales. Las oraciones deben terminar con un punto ( .
) y estar separadas por un solo espacio. Puede generar un espacio final después de la última oración. Todos sus resultados estarán en una línea, pero puede generar una nueva línea final.
Detalles varios
Su código puede usar cualquiera de los métodos estándar de entrada y salida. Debe recibir la entrada como una cadena multilínea, no como una lista u otra estructura de datos, y debe generar una cadena.
¡El código más corto en bytes gana!
Casos de prueba
-->
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.