Revisa Traceryhx:
Este es un port del branch tracery2 de la implementación original en Javascript hecha por galaxykate, tal como estaba en agosto 2016. Tracery es una librería de expansión de texto. Comenzando con una estructura de datos que define strings, Tracery puede expandir estos strings con elementos al azar. Esto ofrece una gran cantidad de posibilidades creativas con una definición de datos muy simple.
Portear la librería de Javascript a Haxe fue relativamente simple, ya que ambos lenguajes son muy similares. A continuación, un extracto de la documentación original, que explica cómo funciona Tracery.
Hay muchos ejemplos nuevos de Tracery en uso También hay un tutorial interactivo
{
"nombre": ["Arjun","Yuuma","Darcy","Mia","Chiaki","Izzi","Azra","Lina"],
"animal": ["unicornio","cuervo","gorrión","escorpión","coyote","águila","búho","lagarto","cebra","pato","gatito"],
"ambiente": ["molesto", "indignado", "apasionado", "melancólico", "astuto", "cortés"],
"historia": ["#heroe# viajó con su #mascotaDelHeroe# mascota. #heroe# nunca estaba #ambiente#, ya que el #mascotaDelHeroe# siempre estaba #ambiente#."],
"origen": ["#[heroe:#nombre#][mascotaDelHeroe:#animal#]historia#"]
}
Por supuesto, ¡muchas otras gramáticas son más complejas!
Lina viajó con su pato mascota. Lina nunca estaba indignado, ya que el pato siempre estaba indignado.
Yuuma viajó con su unicornio mascota. Yuuma nunca estaba wistful, ya que el unicornio siempre estaba indignado.
Azra viajó con su coyote mascota. Azra nunca estaba wistful, ya que el coyote siempre estaba apasionado.
Yuuma viajó con su búho mascota. Yuuma nunca estaba wistful, ya que el búho siempre estaba cortés.
Azra viajó con su cebra mascota. Azra nunca estaba impassioned, ya que el cebra siempre estaba astuto.