diff --git a/src/lipu_nimi.rs b/src/lipu_nimi.rs index 29d51a3..a5a2261 100644 --- a/src/lipu_nimi.rs +++ b/src/lipu_nimi.rs @@ -2,7 +2,7 @@ use rand::seq::SliceRandom; pub fn pana_lipu(i: usize, j: usize) -> Vec { 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 nanpa in i..j + 1 { for nimi in lipu_nimi.lines().nth(nanpa).unwrap().split_whitespace() { kulupu_nimi.push(String::from(nimi)); } diff --git a/src/main.rs b/src/main.rs index 906475a..f91dd49 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,15 +1,15 @@ #![feature(proc_macro_hygiene, decl_macro)] -#[macro_use] +#[macro_use] extern crate rocket; -use rocket_contrib::templates::Template; -use rocket_contrib::serve::StaticFiles; -use rocket::response::NamedFile; use markov::Chain; -use std::collections::HashMap; use rand::Rng; -mod toki; -mod nimi_sin; +use rocket::response::NamedFile; +use rocket_contrib::serve::StaticFiles; +use rocket_contrib::templates::Template; +use std::collections::HashMap; mod lipu_nimi; +mod nimi_sin; +mod toki; #[get("/")] fn nimi() -> Template { @@ -23,16 +23,22 @@ fn seme() -> Option { } fn main() { - rocket::ignite().attach(Template::fairing()).mount("/", routes![nimi]) + rocket::ignite() + .attach(Template::fairing()) + .mount("/", routes![nimi]) .mount("/static", StaticFiles::from("static")) - .mount("/", routes![seme]).launch(); //o pana e lipu ale + .mount("/", routes![seme]) + .launch(); //o pana e lipu ale } fn o_pali_e_lipu() -> HashMap { let mut ijo = HashMap::new(); let nimi_sin = nimi_sin::pali(4); ijo.insert("nimisin".to_string(), nimi_sin.clone()); //o pana e ijo tawa nasin lipu - ijo.insert("kon".to_string(), markov(rand::thread_rng().gen_range(1..3))); + ijo.insert( + "kon".to_string(), + markov(rand::thread_rng().gen_range(1..3)), + ); let mut nanpa = 1; let mut toki_mute = String::new(); while nanpa < rand::thread_rng().gen_range(2..5) { @@ -44,7 +50,8 @@ fn o_pali_e_lipu() -> HashMap { ijo } -fn markov(nanpa: u8) -> String { // pali e nimi sin kepeken ilo Mako. +fn markov(nanpa: u8) -> String { + // pali e nimi sin kepeken ilo Mako. let mut mako = Chain::new(); let mut x = 0; let mut kon = String::new(); @@ -56,4 +63,3 @@ fn markov(nanpa: u8) -> String { // pali e nimi sin kepeken ilo Mako. } kon } - diff --git a/src/nimi_sin.rs b/src/nimi_sin.rs index e58d15d..83b4d84 100644 --- a/src/nimi_sin.rs +++ b/src/nimi_sin.rs @@ -1,5 +1,5 @@ -use rand::Rng; use crate::lipu_nimi; +use rand::Rng; pub fn pali(i: u8) -> String { let mut npsa = rand::thread_rng(); //ni li pali e nanpa pi sona ala (npsa) @@ -11,34 +11,37 @@ pub fn pali(i: u8) -> String { while x < mute { let mut nimi: char; - if rand::random() || x > 0 { //kipisi 1 la nimi ni li ken lon li ken lon ala. kipisi mute la nimi ni li wile lon + if rand::random() || x > 0 { + //kipisi 1 la nimi ni li ken lon li ken lon ala. kipisi mute la nimi ni li wile lon if nimi_pini == 'n' { nimi = lipu_nimi::pana_lili(&[3]); } else { - nimi = lipu_nimi::pana_lili(&[3,4]); + nimi = lipu_nimi::pana_lili(&[3, 4]); } nimi_sin.push(nimi); nimi_pini = nimi; } - + //o wuwojiti ala if nimi_pini == 'w' { - nimi = lipu_nimi::pana_lili(&[5,7]); + nimi = lipu_nimi::pana_lili(&[5, 7]); } else if nimi_pini == 'j' || nimi_pini == 't' { - nimi = lipu_nimi::pana_lili(&[5,6]); + nimi = lipu_nimi::pana_lili(&[5, 6]); } else { - nimi = lipu_nimi::pana_lili(&[5,6,7]); + nimi = lipu_nimi::pana_lili(&[5, 6, 7]); } nimi_sin.push(nimi); - if rand::thread_rng().gen_range(0..10) == 0 { //nimi n li ken lon. TENPO KAMA LA mi ken wile e ni: nimi n li lon la, ante li lon ala. ante li lon la, nimi n li lon ala + if rand::thread_rng().gen_range(0..10) == 0 { + //nimi n li ken lon. TENPO KAMA LA mi ken wile e ni: nimi n li lon la, ante li lon ala. ante li lon la, nimi n li lon ala nimi = 'n'; nimi_sin.push(nimi); } nimi_pini = nimi; x += 1; } - if lipu_nimi::pana_lipu(0,2).contains(&nimi_sin) { //nimi sin li sin ala la, o pali sin e nimi - return pali(i) + if lipu_nimi::pana_lipu(0, 2).contains(&nimi_sin) { + //nimi sin li sin ala la, o pali sin e nimi + return pali(i); } nimi_sin //o pana e nimi sin } diff --git a/src/toki.rs b/src/toki.rs index cfcb27d..b675d38 100644 --- a/src/toki.rs +++ b/src/toki.rs @@ -1,7 +1,5 @@ -use rand::Rng; use crate::lipu_nimi; - - +use rand::Rng; pub fn pali(nimi_sin: &str) -> String { pali_lili(nimi_sin, true, false) //ilo li pali e toki la nimi "la" li ken lon la nimi sin li lon ala @@ -34,16 +32,20 @@ fn pali_lili(nimi_sin: &str, la_li_ken: bool, nimi_sin_li_lon_a: bool) -> String } let mut y = 0; let suli_kipisi; - if suli == 1 { suli_kipisi = rand::thread_rng().gen_range(2_u8..4); + if suli == 1 { + suli_kipisi = rand::thread_rng().gen_range(2_u8..4); } else { - suli_kipisi = rand::thread_rng().gen_range(1_u8..4); //kipisi la nimi tu tu li ken lon + 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 = lipu_nimi::pana(&[0,1]); + let nimi_ni = lipu_nimi::pana(&[0, 1]); 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..4) == 0 || (x == suli-1 && y == suli_kipisi-1)) && !nimi_sin_li_lon { + if (rand::thread_rng().gen_range(0_u8..4) == 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 { @@ -51,16 +53,17 @@ fn pali_lili(nimi_sin: &str, la_li_ken: bool, nimi_sin_li_lon_a: bool) -> String } toki_sin.push_str(" "); y += 1; - if suli_kipisi-y > 1 && rand::random() { //nimi "pi" li ken lon la, ona li ken lon! + if suli_kipisi - y > 1 && rand::random() { + //nimi "pi" li ken lon la, ona li ken lon! toki_sin.push_str("pi "); } } x += 1; - } + } if la_anu_seme { toki_sin.push_str("la "); - toki_sin.push_str(pali_lili(nimi_sin, false, nimi_sin_li_lon).as_str()); //nimi "la" li lon la, ilo li pali e toki sin li pana e toki ni + toki_sin.push_str(pali_lili(nimi_sin, false, nimi_sin_li_lon).as_str()); + //nimi "la" li lon la, ilo li pali e toki sin li pana e toki ni } toki_sin //ilo li pana e toki } - diff --git a/static/linja-nanpa.otf b/static/linja-nanpa.otf new file mode 100644 index 0000000..4780233 Binary files /dev/null and b/static/linja-nanpa.otf differ diff --git a/static/ni-li-seme.html b/static/ni-li-seme.html index a63d973..7cc0565 100644 --- a/static/ni-li-seme.html +++ b/static/ni-li-seme.html @@ -8,6 +8,10 @@ + +

ilo ni li seme??

toki a! ilo ni li pali e nimi sin. kin la, ona li pali e kon pi nimi sin, li pali e toki kepeken nimi sin ni.
@@ -19,7 +23,8 @@

mi a! mi soweli Tesa!

-