ilo lili la lipu li kama pona

This commit is contained in:
tess 2022-05-05 04:11:15 +02:00
parent ba89c4aba5
commit 235998c5d9
9 changed files with 99 additions and 47 deletions

View File

@ -2,7 +2,7 @@ use rand::seq::SliceRandom;
pub fn pana_lipu(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 nanpa in i..j + 1 {
for nimi in lipu_nimi.lines().nth(nanpa).unwrap().split_whitespace() {
kulupu_nimi.push(String::from(nimi));
}

View File

@ -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<NamedFile> {
}
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<String, String> {
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<String, String> {
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
}

View File

@ -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
}

View File

@ -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
}

BIN
static/linja-nanpa.otf Normal file

Binary file not shown.

View File

@ -8,6 +8,10 @@
</head>
<body>
<header id=header>
<h1>󱤎󱥉<a href="/" class=nena>󱥍󱦒󱥂󱥝</a></h1>
</header>
<div class=poki>
<h2 class=nimisin>ilo ni li seme??</h2>
<p class=kon>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.<br>
@ -19,7 +23,8 @@
<p class=kon>mi a! mi <a href="https://tess.kittycat.homes" class="toki">soweli Tesa</a>!
</div>
<footer id="footer" class=toki>
<a href="seme">ni li seme</a>
<a href="./">o pana e nimi sin</a>
<footer class=toki id="footer" class=toki>
<a href="seme">󱥁󱤧󱥙</a>
<span>|</span>
<a href="/">󱥂󱥝</a>
</footer>

View File

@ -10,8 +10,12 @@
font-family: toki;
src:url("OpenSans-Regular.ttf");
}
@font-face {
font-family: sitelen pona;
src:url("linja-nanpa.otf");
}
#footer {
#footer {
bottom : 40px;
height : 40px;
margin-top : 40px;
@ -19,22 +23,32 @@
vertical-align: middle;
position:fixed;
width:100%;
font-family: sitelen pona;
}
#footer * {
margin-right: 40px;
margin-left: 40px;
#header {
top:40px;
height:40px;
margin-bottom:40px;
text-align:center;
vertical-align:middle;
position:static;
width:100%;
font-family: sitelen pona;
}
pre {
white-space: pre-wrap;
}
body {
background-color: #f8f8ff;
font-size:150%
font-size:150%;
}
a {
text-decoration: none;
}
@ -43,14 +57,23 @@ a:hover {
text-decoration: underline;
}
@media (min-width:600px) {
.nimisin-poki {
position: absolute;
position: absolute;
top: 50%;
left: 50%;
-moz-transform: translateX(-50%) translateY(-50%);
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
}
}
@media (max-width:600px) {
.nimisin-poki {
padding-bottom:60px;
}
}
.nimisin {
font-family: nimi sin;
@ -68,4 +91,13 @@ a:hover {
font-style: italic;
}
.nena {
color: #7979ff;
}
.nena:hover {
text-shadow: 0 0 5px #7979ff;
text-decoration:none;
}

View File

@ -8,6 +8,9 @@
</head>
<body>
<header id=header>
<h2>󱤎󱥉<a href="/" class=nena>󱥍󱦒󱥂󱥝</a></h2>
</header>
<div class=nimisin-poki>
<h1 class=nimisin>{{nimisin}}</h1>
@ -15,10 +18,10 @@
<pre class=toki>{{toki}}</pre>
</div>
<footer id="footer" class="toki">
<a href="seme">ni li seme</a>
<a href="/">o pana e nimi sin</a>
<footer id=footer>
<a class=toki href="seme">󱥁󱤧󱥙</a>
<span class=toki>|</span>
<a class=toki href="/">󱥂󱥝</a>
</footer>
</body>
</html>

BIN
󱥠󱤹.xcf Normal file

Binary file not shown.