Inspirado en el próximo evento de fiesta de invierno
Objetivo
Añadir un sombrero ^
, ´
o `
de una sola vocal en cada palabra de la entrada.
Reglas
- El
hat
y elvowel
deben ser elegidos al azar. Cada sombrero debe aparecer con la misma probabilidad (33%) y las vocales deben tener la misma probabilidad dentro de las vocales válidas en la palabra (si la palabra tiene 2 vocales válidas, cada una debe ser elegida en un 50%), o la más cercana que tiene tu idioma - Solo
AEIOUaeiou
se consideran vocales (lo sientoy
) - Las vocales con sombreros en la entrada NO interfieren con las reglas (puede considerarlo como una consonante)
- Si la entrada no tiene vocal, no se modificará
- La capitalización debe ser preservada.
Ejemplos
winter
> wintér
bash
> bâsh
rhythm
> rhythm
rng ftw
> rng ftw
cat in the hat
> cât ìn thê hát
dès
> dès
tschüss
> tschüss
principî
> prìncipî
PROGRAMMING PUZZLES & code golf
>PROGRÂMMING PÚZZLES & codé gòlf
Victorioso
Este es el código de golf, por lo que gana el código más corto
get the current time
azar?Respuestas:
Perl 6 , 101 bytes
Intentalo
Expandido:
fuente
C #,
273267 bytesdemo de repl.it
Realmente siento que estoy haciendo trampa, ya que todavía agrego sombreros a las vocales ya acentuadas creadas combinando caracteres . Si eso no es aceptable, avíseme para que pueda
agregar códigos repetitivos ydeclare que esta respuesta no es competitiva.Esto agrega un carácter aleatorio entre U + 0300 o U + 0301 o U + 0302 , después de una vocal aleatoria de cada palabra de entrada (si existe).
Sin golf (solo cuerpo lambda)
fuente
Mathematica, 226 bytes
Función sin nombre que toma una lista de caracteres como entrada y devuelve una lista de caracteres. Versión más fácil de leer, también un poco descuidada:
La línea 13 divide la entrada en palabras (sublistas de caracteres) en todos los espacios; cada palabra es operada por la función definida por las líneas 4-12, y los resultados se unieron nuevamente en una sola lista por la línea 3.
La línea 4 establece
p
la lista de índices que indican qué caracteres de la palabraw
son vocales. Si hay vocales (línea 5), hacemos una elección aleatoria de uno de esos índicesi
(línea 6) y luego restablecemos ese carácter único de la palabra a un nuevo carácter (líneas 7-10). Finalmente sacamos la palabra (posiblemente modificada)w
.Para seleccionar el nuevo carácter, encontramos dónde se encuentra la vocal a reemplazar en la cadena
v
y elegimos el código de carácter correspondientea
. Pero para seleccionar aleatoriamente los tres sombreros, tomamos ese código y agregamos un número entero aleatorio entre 0 y 2 (línea 9) antes de volver a convertirlo en un carácter. (Afortunadamente, todas las vocales anuladas vienen en tríos consecutivos de códigos de caracteres UTF-8).fuente
Python 3, 170 bytes
Sin golf:
fuente
import
y*
.j+1 for
puede serj+1for
.