55 lines
2.7 KiB
Rust
55 lines
2.7 KiB
Rust
use rand::Rng;
|
|
|
|
pub fn pali(nimi_sin: &str) -> String {
|
|
let nimi = ["akesi", "ala", "alasa", "ale", "anpa", "ante", "awen", "esun", "ijo", "ike", "ilo", "insa", "jaki", "jan", "jelo", "jo", "kala", "kalama", "kama", "kasi", "ken", "kepeken", "kili", "kiwen", "ko", "kon", "kule", "kulupu", "kute", "lape", "laso", "lawa", "len", "lete", "lili", "linja", "lipu", "loje", "lon", "luka", "lukin", "lupa", "ma", "mama", "mani", "mi", "moku", "moli", "monsi", "mu", "mun", "musi", "mute", "nanpa", "nasa", "nasin", "nena", "ni", "nimi", "noka", "olin", "ona", "open", "pakala", "pali", "palisa", "pan", "pilin", "pimeja", "pini", "pipi", "poka", "poki", "pona", "pu", "sama", "seli", "selo", "seme", "sewi", "sike", "sin", "sina", "sinpin", "sona", "sitelen", "soweli", "suli", "suno", "supa", "suwi", "tan", "taso", "tawa", "telo", "tenpo", "toki", "tomo", "tu", "unpa", "uta", "utala", "walo", "wan", "waso", "wawa", "weka", "wile", "tonsi", "ku", "epiku", "jasima", "kijetesantakalu", "kin", "kipisi", "kokosila", "lanpan", "leko", "meso", "misikeke", "monsuta", "monsuta", "namako", "oko", "soko"]; //nimi pi ku suli
|
|
let nimi_ante = ["kepeken", "sama", "tan", "tawa", "lon"];
|
|
let mut x = 1;
|
|
let suli = rand::thread_rng().gen_range(0_u8..5);
|
|
let mut nimi_suli = String::new();
|
|
let mut mi_anu_sina = false;
|
|
let mut nimi_sin_li_lon = false;
|
|
loop {
|
|
if x == 2 {
|
|
if rand::thread_rng().gen_range(0_u8..10) == 0 {
|
|
nimi_suli.push_str("o ");
|
|
} else if !mi_anu_sina{
|
|
nimi_suli.push_str("li ");
|
|
}
|
|
}
|
|
if x == 3 {
|
|
nimi_suli.push_str("e ");
|
|
}
|
|
if x == 4 {
|
|
nimi_suli.push_str(nimi_ante[rand::thread_rng()
|
|
.gen_range(0..nimi_ante.len())]);
|
|
nimi_suli.push_str(" ");
|
|
}
|
|
let mut y = 0;
|
|
let suli_kipisi = rand::thread_rng().gen_range(1_u8..4);
|
|
while y < suli_kipisi {
|
|
let nimi_ni = nimi[rand::thread_rng().gen_range(0..nimi.len())];
|
|
if (nimi_ni == "mi" || nimi_ni == "sina") && suli_kipisi == 1 {
|
|
mi_anu_sina = true;
|
|
}
|
|
if (rand::thread_rng().gen_range(0..4) == 0 || (x+1 == suli && y == suli_kipisi-1)) && !nimi_sin_li_lon {
|
|
nimi_suli.push_str(nimi_sin);
|
|
nimi_sin_li_lon = true;
|
|
} else {
|
|
nimi_suli.push_str(nimi[rand::thread_rng()
|
|
.gen_range(0..nimi.len())]);
|
|
}
|
|
nimi_suli.push_str(" ");
|
|
y += 1;
|
|
if suli_kipisi-y > 1 && rand::random() {
|
|
nimi_suli.push_str("pi ");
|
|
}
|
|
}
|
|
|
|
|
|
x += 1;
|
|
if x > suli { break; }
|
|
}
|
|
nimi_suli
|
|
|
|
}
|