Kategorier
Esolanean

More scripting

I ended up last night with a script that generated some decent syllables. Alas, when combined, they didn’t always work very well.

So I changed my script a bit:

tokens vowel a e i o
tokens consonant b k l m n p r s t
tokens noun-ender r n

rule base {
 loop 0 1 1 5[2] 2[3] {
 rule syllable
 }
}

rule noun {
 rule base
 rule noun-ending
}

rule noun-ending {
 loop 0 0 1 1 1 {
 token consonant
 }
 token vowel
 token noun-ender
}

rule syllable {
 loop 0 0 1 1 1 {
 token consonant
 }
 token vowel
 loop 0 0 6[1] {
 token consonant
 }
}

rule syllable {
 translate {
 a # => a $consonant
 e # => e $consonant
 i # => i $consonant
 o # => o $consonant
 }
 loop 0 0 1 {
 repeat
 }
 token vowel
 loop 0 0 6[1] {
 token consonant
 }
}

startingrule noun 50

Now, I’ve added a new variation of the syllable rule so as to make double consonants more likely. I found that ever so often, the rule would be applied to a syllable ending with a vowel, so I added the translate command to make sure there was a consonant at the end before repeating.

That’s a lot better, but there are still some consonant pairs that I dislike. So I added this rule to the script:

rule cleaning {
 translate {
 [b p] k => m k
 t k => s k
 [b p] n => n n
 b p => p p
 p b => b b
 l r => l l
 }
}

Which solves at least most of my problems. Words now look like this:

  • arpakpir
  • elobrar
  • akinan
  • oppin
  • abor
  • itokimkon
  • kanikbamen
  • oksan
  • ikabmemir
  • eppobin
  • an
  • etetelen
  • inter
  • orser
  • itannesmar
  • nabsipporon
  • imsinror
  • ekeon
  • obbason
  • mibosepir
  • ibasbir

Not bad – and with a pretty uniform feeling, I think.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *