aaa,, mi pali e ijo mute a!! nimi_ale.txt li lon. nimi sin li ken ala sin ala. mi pali e ijo ante kin. taso mi pali e ijo mute la mi sona ala e ijo ale

This commit is contained in:
tess 2022-05-03 05:42:27 +02:00
parent e24b74c5a1
commit 828750cad5
6 changed files with 38 additions and 11 deletions

5
nimi_ale.txt Normal file
View File

@ -0,0 +1,5 @@
akesi ala alasa ale anpa ante awen esun ijo ike ilo insa jaki jan jelo jo kala kalama kama kasi ken kili kiwen ko kon kule kulupu kute lape laso lawa len lete lili linja lipu loje 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 seli selo seme sewi sike sin sina sinpin sona sitelen soweli suli suno supa suwi taso 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 namako oko soko
kepeken sama tan tawa lon
li e o a la
w t p s j k l n m
e u i o a

11
src/lipu_nimi.rs Normal file
View File

@ -0,0 +1,11 @@
pub fn pana(i: usize, j: usize) -> Vec<String> {
let lipu_nimi = std::fs::read_to_string("nimi_ale.txt").unwrap();
let mut kulupu_nimi = Vec::new();
for nanpa in i..j+1 {
for nimi in lipu_nimi.lines().nth(nanpa).unwrap().split_whitespace() {
kulupu_nimi.push(String::from(nimi));
}
}
kulupu_nimi
}

View File

@ -1,6 +1,7 @@
use markov::Chain;
mod toki;
mod nimi_sin;
mod lipu_nimi;
fn main() {
let nimi_sin = nimi_sin::pali(4);

View File

@ -1,4 +1,6 @@
use rand::Rng;
use rand::seq::SliceRandom;
use crate::lipu_nimi;
pub fn pali(i: u8) -> String {
let mut npsa = rand::thread_rng(); //ni li pali e nanpa pi sona ala (npsa)
@ -34,15 +36,18 @@ pub fn pali(i: u8) -> String {
nimi_pini = nimi;
x += 1;
}
if lipu_nimi::pana(0,2).contains(&nimi_sin) {
return pali(i)
}
nimi_sin
}
fn nimi_w() -> char {
let kulupu_nimi = ['w', 't', 'p', 's', 'j', 'k', 'l', 'n', 'm'];
kulupu_nimi[rand::thread_rng().gen_range(0..kulupu_nimi.len())]
let kulupu_nimi = lipu_nimi::pana(3,3);
kulupu_nimi.choose(&mut rand::thread_rng()).unwrap().chars().nth(0).unwrap()
}
fn nimi_e() -> char {
let kulupu_nimi = ['e', 'u', 'i', 'o', 'a'];
kulupu_nimi[rand::thread_rng().gen_range(0..kulupu_nimi.len())]
let kulupu_nimi = lipu_nimi::pana(4,4);
kulupu_nimi.choose(&mut rand::thread_rng()).unwrap().chars().nth(0).unwrap()
}

View File

@ -1,4 +1,8 @@
use rand::Rng;
use rand::seq::SliceRandom;
use crate::lipu_nimi;
pub fn pali(nimi_sin: &str) -> String {
let mut toki = String::new();
@ -8,8 +12,9 @@ pub fn pali(nimi_sin: &str) -> String {
}
fn pali_lili(toki: String, nimi_sin: &str, la_li_ken: bool, nimi_sin_li_lon_a: bool) -> String {
let kulupu_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 kulupu_nimi_ante = ["kepeken", "sama", "tan", "tawa", "lon"]; //kepeken li nimi ni li sama ala kepeken pi nimi ante.
let nimi_pi_ku_suli = lipu_nimi::pana(0,1);
let nimi_tawa = lipu_nimi::pana(1,1);
let mut toki_sin = String::clone(&toki);
let mut mi_anu_sina = false;
let mut la_anu_seme = rand::thread_rng().gen_range(0_u8..10) == 0;
@ -31,7 +36,7 @@ fn pali_lili(toki: String, nimi_sin: &str, la_li_ken: bool, nimi_sin_li_lon_a: b
toki_sin.push_str("e "); //nimi "e"
}
if x == 3 {
toki_sin.push_str(kulupu_nimi_ante[rand::thread_rng().gen_range(0..kulupu_nimi_ante.len())]); //nimi sama nimi "kepeken"
toki_sin.push_str(nimi_tawa.choose(&mut rand::thread_rng()).unwrap()); //nimi sama nimi "kepeken"
toki_sin.push_str(" ");
}
let mut y = 0;
@ -41,16 +46,16 @@ fn pali_lili(toki: String, nimi_sin: &str, la_li_ken: bool, nimi_sin_li_lon_a: b
suli_kipisi = rand::thread_rng().gen_range(1_u8..4); //kipisi la nimi tu tu li ken lon
}
while y < suli_kipisi {
let nimi_ni = kulupu_nimi[rand::thread_rng().gen_range(0..kulupu_nimi.len())];
if (nimi_ni == "mi" || nimi_ni == "sina") && suli_kipisi == 1 {
let nimi_ni = nimi_pi_ku_suli.choose(&mut rand::thread_rng()).unwrap();
if (nimi_ni == &"mi" || nimi_ni == &"sina") && suli_kipisi == 1 {
mi_anu_sina = true; //nimi li nimi "mi" taso anu nimi "sina" taso
}
if (rand::thread_rng().gen_range(0_u8..6) == 0 || (x == suli-1 && y == suli_kipisi-1)) && !nimi_sin_li_lon {
toki_sin.push_str(nimi_sin); //ilo li pana e nimi sin.
nimi_sin_li_lon = true; //ni la, nimi sin li lon!
} else {
toki_sin.push_str(kulupu_nimi[rand::thread_rng().
gen_range(0..kulupu_nimi.len())]); //ilo li pana e nimi pi ku suli
toki_sin.push_str(nimi_pi_ku_suli.choose(&mut rand::thread_rng())
.unwrap()); //ilo li pana e nimi pi ku suli
}
toki_sin.push_str(" ");
y += 1;

BIN
󱥠.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB