mi mu anu seme
This commit is contained in:
parent
70845819ed
commit
974911cfe5
|
@ -1,4 +1,10 @@
|
||||||
use rand::seq::SliceRandom;
|
use rand::seq::SliceRandom;
|
||||||
|
|
||||||
|
///ni li pana e nimi mute tan lipu nimi
|
||||||
|
///
|
||||||
|
///# wile
|
||||||
|
///`i` - linja open
|
||||||
|
///`j` - linja pini
|
||||||
pub fn pana_lipu(i: usize, j: usize) -> Vec<String> {
|
pub fn pana_lipu(i: usize, j: usize) -> Vec<String> {
|
||||||
let lipu_nimi = std::fs::read_to_string("nimi_ale.txt").unwrap();
|
let lipu_nimi = std::fs::read_to_string("nimi_ale.txt").unwrap();
|
||||||
let mut kulupu_nimi = Vec::new();
|
let mut kulupu_nimi = Vec::new();
|
||||||
|
@ -10,6 +16,10 @@ pub fn pana_lipu(i: usize, j: usize) -> Vec<String> {
|
||||||
kulupu_nimi
|
kulupu_nimi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///ni li pana e nimi pi sona ala tan lipu nimi
|
||||||
|
///
|
||||||
|
///# wile
|
||||||
|
///`i` - nimi li ken tan linja ni
|
||||||
pub fn pana(i: &[usize]) -> String {
|
pub fn pana(i: &[usize]) -> String {
|
||||||
let lipu_nimi = std::fs::read_to_string("nimi_ale.txt").unwrap();
|
let lipu_nimi = std::fs::read_to_string("nimi_ale.txt").unwrap();
|
||||||
let mut kulupu_nimi = Vec::new();
|
let mut kulupu_nimi = Vec::new();
|
||||||
|
@ -21,6 +31,10 @@ pub fn pana(i: &[usize]) -> String {
|
||||||
String::clone(kulupu_nimi.choose(&mut rand::thread_rng()).unwrap())
|
String::clone(kulupu_nimi.choose(&mut rand::thread_rng()).unwrap())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///ni li pana e nimi lili pi sona ala tan lipu nimi
|
||||||
|
///
|
||||||
|
///# wile
|
||||||
|
///`i` - nimi lili li ken tan linja ni
|
||||||
pub fn pana_lili(i: &[usize]) -> char {
|
pub fn pana_lili(i: &[usize]) -> char {
|
||||||
let lipu_nimi = std::fs::read_to_string("nimi_ale.txt").unwrap();
|
let lipu_nimi = std::fs::read_to_string("nimi_ale.txt").unwrap();
|
||||||
let mut kulupu_nimi = Vec::new();
|
let mut kulupu_nimi = Vec::new();
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
use crate::lipu_nimi;
|
use crate::lipu_nimi;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
|
///ni li pali e nimi sin
|
||||||
|
///nimi sin la, nasin (C)V(N)(CV(N)) o lon
|
||||||
|
///
|
||||||
|
///# wile
|
||||||
|
///`i` - suli pi nimi sin. ona li wan la, nimi sin li ken sama "ne" anu "nen". ona li tu la, "nene"
|
||||||
|
///anu "nenen" li ken kin
|
||||||
pub fn pali(i: u8) -> String {
|
pub fn pali(i: u8) -> String {
|
||||||
let mut npsa = rand::thread_rng(); //ni li pali e nanpa pi sona ala (npsa)
|
let mut npsa = rand::thread_rng(); //ni li pali e nanpa pi sona ala (npsa)
|
||||||
let mute = npsa.gen_range(1..i); //suli nimi la ken mute li lon
|
let mute = npsa.gen_range(1..i); //suli nimi la ken mute li lon
|
||||||
|
@ -12,7 +18,7 @@ pub fn pali(i: u8) -> String {
|
||||||
while x < mute {
|
while x < mute {
|
||||||
let mut nimi: char;
|
let mut nimi: char;
|
||||||
if rand::random() || x > 0 {
|
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
|
//kipisi wan la nimi ni li ken lon li ken lon ala. kipisi mute la nimi ni li wile lon
|
||||||
if nimi_pini == 'n' {
|
if nimi_pini == 'n' {
|
||||||
nimi = lipu_nimi::pana_lili(&[3]);
|
nimi = lipu_nimi::pana_lili(&[3]);
|
||||||
} else {
|
} else {
|
||||||
|
|
29
src/toki.rs
29
src/toki.rs
|
@ -1,18 +1,29 @@
|
||||||
use crate::lipu_nimi;
|
use crate::lipu_nimi;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
|
/// ni li open e pali ante tawa pali pi toki sin
|
||||||
|
/// mi ni tan ni: lon lipu ante la, wile wan li pona. wile mute li ike.
|
||||||
|
///
|
||||||
|
/// # wile
|
||||||
|
/// `nimi sin` - ni li nimi sin. nimi ni o lon toki
|
||||||
pub fn pali(nimi_sin: &str) -> String {
|
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
|
pali_lili(nimi_sin, true, false) //ilo li pali e toki la nimi "la" li ken lon la nimi sin li lon ala
|
||||||
}
|
}
|
||||||
|
|
||||||
fn pali_lili(nimi_sin: &str, la_li_ken: bool, nimi_sin_li_lon_a: bool) -> String {
|
/// ni li pali e pali suli
|
||||||
|
/// (ni la mi nimi "pali_lili" e ona tan seme a?)
|
||||||
|
///
|
||||||
|
/// # arguments
|
||||||
|
/// `nimi_sin` - ni li nimi sin. nimi ni o lon toki
|
||||||
|
/// `la_li_ken` - nimi "la" li lon la nimi "la" li ken ala. ante la ona li ken
|
||||||
|
/// `nimi_sin_li_lon` - nimi sin li lon anu seme?
|
||||||
|
fn pali_lili(nimi_sin: &str, la_li_ken: bool, mut nimi_sin_li_lon: bool) -> String {
|
||||||
let mut toki_sin = String::new();
|
let mut toki_sin = String::new();
|
||||||
let mut mi_anu_sina = false;
|
let mut mi_anu_sina = false;
|
||||||
let mut la_anu_seme = rand::thread_rng().gen_range(0_u8..10) == 0;
|
let mut la_anu_seme = rand::thread_rng().gen_range(0_u8..10) == 0;
|
||||||
if la_li_ken == false {
|
if la_li_ken == false {
|
||||||
la_anu_seme = false;
|
la_anu_seme = false;
|
||||||
}
|
}
|
||||||
let mut nimi_sin_li_lon = nimi_sin_li_lon_a;
|
|
||||||
let mut x = 0;
|
let mut x = 0;
|
||||||
let suli = rand::thread_rng().gen_range(1_u8..4); // toki la, kipisi tu tu li ken lon.
|
let suli = rand::thread_rng().gen_range(1_u8..4); // toki la, kipisi tu tu li ken lon.
|
||||||
while x < suli {
|
while x < suli {
|
||||||
|
@ -33,15 +44,11 @@ fn pali_lili(nimi_sin: &str, la_li_ken: bool, nimi_sin_li_lon_a: bool) -> String
|
||||||
let mut y = 0;
|
let mut y = 0;
|
||||||
let suli_kipisi;
|
let suli_kipisi;
|
||||||
if suli == 1 {
|
if suli == 1 {
|
||||||
suli_kipisi = rand::thread_rng().gen_range(2_u8..4);
|
suli_kipisi = rand::thread_rng().gen_range(2_u8..4); //kipisi wan taso li lon la nimi tu anu nimi mute o lon kipisi
|
||||||
} else {
|
} 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); //ante la nimi wan li ken lon kin!
|
||||||
}
|
}
|
||||||
while y < suli_kipisi {
|
while y < suli_kipisi {
|
||||||
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
|
if (rand::thread_rng().gen_range(0_u8..4) == 0
|
||||||
|| (x == suli - 1 && y == suli_kipisi - 1))
|
|| (x == suli - 1 && y == suli_kipisi - 1))
|
||||||
&& !nimi_sin_li_lon
|
&& !nimi_sin_li_lon
|
||||||
|
@ -49,6 +56,10 @@ fn pali_lili(nimi_sin: &str, la_li_ken: bool, nimi_sin_li_lon_a: bool) -> String
|
||||||
toki_sin.push_str(nimi_sin); //ilo li pana e nimi sin.
|
toki_sin.push_str(nimi_sin); //ilo li pana e nimi sin.
|
||||||
nimi_sin_li_lon = true; //ni la, nimi sin li lon!
|
nimi_sin_li_lon = true; //ni la, nimi sin li lon!
|
||||||
} else {
|
} else {
|
||||||
|
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
|
||||||
|
}
|
||||||
toki_sin.push_str(nimi_ni.as_str());
|
toki_sin.push_str(nimi_ni.as_str());
|
||||||
}
|
}
|
||||||
toki_sin.push_str(" ");
|
toki_sin.push_str(" ");
|
||||||
|
@ -61,9 +72,9 @@ fn pali_lili(nimi_sin: &str, la_li_ken: bool, nimi_sin_li_lon_a: bool) -> String
|
||||||
x += 1;
|
x += 1;
|
||||||
}
|
}
|
||||||
if la_anu_seme {
|
if la_anu_seme {
|
||||||
|
//nimi "la" li lon la, ilo li pali e toki sin li pana e toki ni
|
||||||
toki_sin.push_str("la ");
|
toki_sin.push_str("la ");
|
||||||
toki_sin.push_str(pali_lili(nimi_sin, false, nimi_sin_li_lon).as_str());
|
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
|
toki_sin //ilo li pana e toki
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue