El reto
Bueno, creo que está bastante claro, ¿no? Debe crear una función o un programa que tome una cadena como argumento y genere el correspondiente Yoda-talking.
Esto es código golf , por lo que gana el menor número de bytes.
La entrada
La entrada podría ser cualquier cadena sin salto de línea. Puede traducir una cadena si está compuesta así:
Tema + Verbo + Algo más.
Donde sujeto es un pronombre personal (yo, tú, él, ella, eso, nosotros, ellos). No tienes que reconocer que la segunda palabra es un verbo.
Si la primera palabra no es un pronombre, la entrada es válida pero la salida será Too difficult, this sentence is.
You have to win this code challenge -> Translatable
Luke has to win this code challenge -> Untranslatable
La entrada puede terminar con una letra, a. o a!, no con un?.
Además, las cadenas pueden contener no ascii, paréntesis, comas, dos puntos ...
La salida
En el caso de una oración traducible, la salida es la misma oración, con el sujeto y el verbo al final de la oración.
You have to win this code challenge -> To win this code challenge, you have.
La coma, punto y minúscula en el pronombre son obligatorios. (Excepto, por supuesto, si el pronombre es I).
Como se indicó anteriormente, si no es traducible, debe generar la cadena Too difficult, this sentence is.
Ejemplos
You have to win this code challenge -> To win this code challenge, you have.
He won this code challenge -> This code challenge, he won. (I know this is not yoda-speaking, but I don’t want to overcomplicate this challenge)
I ate an ice cream earlier! -> An ice cream earlier, I ate.
I liked the Star Wars original trilogy more than the prequel’s one. -> The Star Wars original trilogy more than the prequel’s one, I liked.
I find your lack of faith disturbing -> Your lack of faith disturbing, I find.
I think we are done with the examples -> We are done with examples, I think.
He is your son, Vader -> Your son, Vader, he is.
I think they’ll add new features -> They’ll add new features, I think.
I made a fantastic code challenge (I hope) -> A fantastic code challenge (I hope), I made.
I love constants like π -> Constants like π, I love.
I’ll be the next President, I swear! -> Too difficult, this sentence is.
This challenge is great! -> Too difficult, this sentence is.
Is this challenge great? -> Too difficult, this sentence is.
Luke is not ready for this task -> Too difficult, this sentence is.
Somebody loves constants like π -> Too difficult, this sentence is.
[Empty string] -> Too difficult, this sentence is.
!
? ¿Se garantiza que eso no sucederá o deberíamos manejar eso e imprimir lo mismo que cuando no hay un pronombre principal? ¿Puede la entrada contener saltos de línea? Apóstrofos? Dos puntos / paréntesis / backticks? ¿Caracteres no ASCII? Usted dice que "la entrada podría ser cualquier cadena", pero sus casos de prueba solo cubren tipos muy específicos de cadenas.
You have to win this code challenge
debería serThis code challenge, you have to win
.