From 45077281501a06a079b6f4b425de0252c9f573b6 Mon Sep 17 00:00:00 2001 From: Manuel Riquelme Date: Sun, 2 Jul 2023 12:25:06 +0200 Subject: [PATCH] reto13 terminado --- ejercicios/reto13/src/main.rs | 43 ++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/ejercicios/reto13/src/main.rs b/ejercicios/reto13/src/main.rs index 1e6efc8..dac2d2c 100644 --- a/ejercicios/reto13/src/main.rs +++ b/ejercicios/reto13/src/main.rs @@ -30,7 +30,6 @@ fn creapalabra(palabra: &str, vectorocultas: &mut Vec) -> String { for i in vectorfinal { palabrafinal = palabrafinal + &i.to_string(); } - // TODO eliminar acentos palabrafinal.to_string() } @@ -50,6 +49,14 @@ async fn main() -> Result<(), Box> { && i.is_empty() == false && i.chars().last().unwrap() != '"' { + match *i { + "á" => "a", + "é" => "e", + "í" => "i", + "ó" => "o", + "ú" => "u", + _ => i, + }; palabra = palabra + i; vectorpalabra.push(*i); } @@ -65,9 +72,9 @@ async fn main() -> Result<(), Box> { vectorocultas.push(num); } } + let mut intentos: i32 = 10; loop { - let mut intentos: i32 = 10; - let mut entrada = "".to_string(); + let mut entrada = String::from(""); println!("Intentos: {}", intentos); println!("Palabra: {}", creapalabra(&palabra, &mut vectorocultas)); println!("Ingrese una letra o la solución: "); @@ -76,21 +83,35 @@ async fn main() -> Result<(), Box> { let vectorentrada: Vec = entrada.chars().collect(); if vectorentrada.len() == 2 { // Si es una letra - println!("Es una letra {}, {}", vectorentrada[0], palabra); - for i in vectorocultas.iter() { - println!("{}", vectorpalabra[*i]); + vectorocultas.sort(); + let clonevectorocultas: Vec = vectorocultas.clone(); + for i in clonevectorocultas.iter() { if vectorpalabra[*i].to_string() == vectorentrada[0].to_string() { - // Hay que eliminar del vector - // y volver a generar la palabra + let index = vectorocultas.iter().position(|x| x == i).unwrap(); + vectorocultas.remove(index); + break; } } - } - if entrada.len() == palabra.len() { + if clonevectorocultas.len() <= vectorocultas.len() { + intentos -= 1; + } + } else { // Si es una palabra + if entrada.replace("\n", "") == palabra { + println!("Acertaste! La palabra era: {}", palabra); + break; + } else { + intentos -= 1; + } + } + + if vectorocultas.len() == 0 { + println!("Acertaste! La palabra era: {}", palabra); + break; } if intentos == 0 { - println!("Perdiste!"); + println!("Perdiste! La palabra era: {}", palabra); break; } }