reto13 while intentos>0

This commit is contained in:
2023-06-30 13:18:52 +02:00
parent e64671f6a1
commit df7aa7d898

View File

@@ -14,6 +14,25 @@
*/
use rand::Rng;
use std::io;
fn creapalabra(palabra: &str, vectorocultas: &mut Vec<usize>) -> String {
let vector: Vec<char> = palabra.chars().collect();
let mut vectorfinal: Vec<char> = Vec::new();
for (index, i) in vector.iter().enumerate() {
if vectorocultas.contains(&index) == false {
vectorfinal.push(*i);
} else {
vectorfinal.push('_');
}
}
let mut palabrafinal: String = String::from("");
for i in vectorfinal {
palabrafinal = palabrafinal + &i.to_string();
}
palabrafinal.to_string()
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
@@ -34,14 +53,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
}
}
// Ya tenemos la palabra
println!("palabra: {}", palabra);
// calcula el 60% de la palabra
let ocultas = palabra.len() * 6 / 10;
println!(
"ocultas: {} {}%",
ocultas,
ocultas as f32 / palabra.len() as f32 * 100.0
);
// los números de caracter que va a ocultar
let mut vectorocultas: Vec<usize> = Vec::new();
while vectorocultas.len() != ocultas {
@@ -49,7 +62,14 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
if vectorocultas.contains(&num) == false {
vectorocultas.push(num);
}
println!("num: {}", num);
}
let mut intentos = 10;
while intentos > 0 {
let mut entrada = String::new();
println!("Intentos: {}", intentos);
println!("Palabra: {}", creapalabra(&palabra, &mut vectorocultas));
println!("Ingrese una letra o la solución: ");
io::stdin().read_line(&mut entrada).unwrap();
}
Ok(())
}