2022-05-02 16:52:19 +00:00
use rand ::Rng ;
2022-05-03 03:42:27 +00:00
use crate ::lipu_nimi ;
2022-05-02 16:52:19 +00:00
pub fn pali ( i : u8 ) -> String {
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 mut x = 0 ;
let mut nimi_pini = 'x' ; //nimi 'x' li ken ala lon la ni li nimi_pini lon open
let mut nimi_sin = String ::new ( ) ;
while x < mute {
let mut nimi : char ;
2022-05-03 16:01:02 +00:00
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
2022-05-04 08:55:59 +00:00
if nimi_pini = = 'n' {
2022-05-04 10:07:21 +00:00
nimi = lipu_nimi ::pana_lili ( & [ 3 ] ) ;
2022-05-04 08:55:59 +00:00
} else {
2022-05-04 10:07:21 +00:00
nimi = lipu_nimi ::pana_lili ( & [ 3 , 4 ] ) ;
2022-05-02 16:52:19 +00:00
}
nimi_sin . push ( nimi ) ;
nimi_pini = nimi ;
}
2022-05-04 08:55:59 +00:00
//o wuwojiti ala
if nimi_pini = = 'w' {
2022-05-04 10:07:21 +00:00
nimi = lipu_nimi ::pana_lili ( & [ 5 , 7 ] ) ;
} else if nimi_pini = = 'j' | | nimi_pini = = 't' {
nimi = lipu_nimi ::pana_lili ( & [ 5 , 6 ] ) ;
2022-05-04 08:55:59 +00:00
} else {
2022-05-04 10:07:21 +00:00
nimi = lipu_nimi ::pana_lili ( & [ 5 , 6 , 7 ] ) ;
2022-05-02 16:52:19 +00:00
}
nimi_sin . push ( nimi ) ;
2022-05-03 19:40:22 +00:00
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
2022-05-02 16:52:19 +00:00
nimi = 'n' ;
nimi_sin . push ( nimi ) ;
}
nimi_pini = nimi ;
x + = 1 ;
}
2022-05-04 10:07:21 +00:00
if lipu_nimi ::pana_lipu ( 0 , 2 ) . contains ( & nimi_sin ) { //nimi sin li sin ala la, o pali sin e nimi
2022-05-03 03:42:27 +00:00
return pali ( i )
}
2022-05-03 16:01:02 +00:00
nimi_sin //o pana e nimi sin
2022-05-02 16:52:19 +00:00
}