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 }