diff --git a/ejercicios/reto02/Cargo.toml b/ejercicios/reto02/Cargo.toml new file mode 100644 index 0000000..cd40b3d --- /dev/null +++ b/ejercicios/reto02/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "reto03" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/ejercicios/reto02/src/main.rs b/ejercicios/reto02/src/main.rs new file mode 100644 index 0000000..9ad6705 --- /dev/null +++ b/ejercicios/reto02/src/main.rs @@ -0,0 +1,57 @@ +/* + * Escribe un programa que muestre cómo transcurre un juego de tenis y quién lo ha ganado. + * El programa recibirá una secuencia formada por "P1" (Player 1) o "P2" (Player 2), según quien + * gane cada punto del juego. + * + * - Las puntuaciones de un juego son "Love" (cero), 15, 30, 40, "Deuce" (empate), ventaja. + * - Ante la secuencia [P1, P1, P2, P2, P1, P2, P1, P1], el programa mostraría lo siguiente: + * 15 - Love + * 30 - Love + * 30 - 15 + * 30 - 30 + * 40 - 30 + * Deuce + * Ventaja P1 + * Ha ganado el P1 + * - Si quieres, puedes controlar errores en la entrada de datos. + * - Consulta las reglas del juego si tienes dudas sobre el sistema de puntos. + */ + +fn main() { + let secuencia = vec!["P1", "P1", "P2", "P2", "P1", "P2", "P1", "P1"]; + let puntos = vec!["Love", "15", "30", "40"]; + let mut jugador1 = 0; + let mut jugador2 = 0; + let mut puntos1; + let mut puntos2; + for ele in secuencia { + if ele == "P1" { + jugador1 += 1; + } else if ele == "P2" { + jugador2 += 1; + } + if jugador1 < puntos.len() { + puntos1 = puntos[jugador1].to_string(); + } else { + puntos1 = "+".to_string(); + } + puntos2 = if jugador2 < puntos.len() { + puntos[jugador2].to_string() + } else { + "+".to_string() + }; + if jugador1 > 2 && jugador2 > 2 && jugador1 == jugador2 { + println!("Deuce"); + } else if jugador1 > 2 && jugador2 > 2 && jugador1 + 1 == jugador2 { + println!("Ventaja P2"); + } else if jugador1 > 2 && jugador2 > 2 && jugador2 + 1 == jugador1 { + println!("Ventaja P1"); + } else if jugador1 > 3 && jugador1 > jugador2 { + println!("Ha ganado el P1"); + } else if jugador1 > 3 && jugador2 > jugador1 { + println!("Ha ganado el P2"); + } else { + println!("{} - {}", puntos1, puntos2); + } + } +} diff --git a/ejercicios/reto03/Cargo.toml b/ejercicios/reto03/Cargo.toml index cd40b3d..9bbe485 100644 --- a/ejercicios/reto03/Cargo.toml +++ b/ejercicios/reto03/Cargo.toml @@ -1,8 +1,9 @@ [package] -name = "reto03" +name = "reto04" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +rand = "0.8" diff --git a/ejercicios/reto03/src/main.rs b/ejercicios/reto03/src/main.rs index 9ad6705..573f77d 100644 --- a/ejercicios/reto03/src/main.rs +++ b/ejercicios/reto03/src/main.rs @@ -1,57 +1,25 @@ /* - * Escribe un programa que muestre cómo transcurre un juego de tenis y quién lo ha ganado. - * El programa recibirá una secuencia formada por "P1" (Player 1) o "P2" (Player 2), según quien - * gane cada punto del juego. - * - * - Las puntuaciones de un juego son "Love" (cero), 15, 30, 40, "Deuce" (empate), ventaja. - * - Ante la secuencia [P1, P1, P2, P2, P1, P2, P1, P1], el programa mostraría lo siguiente: - * 15 - Love - * 30 - Love - * 30 - 15 - * 30 - 30 - * 40 - 30 - * Deuce - * Ventaja P1 - * Ha ganado el P1 - * - Si quieres, puedes controlar errores en la entrada de datos. - * - Consulta las reglas del juego si tienes dudas sobre el sistema de puntos. + * Escribe un programa que sea capaz de generar contraseñas de forma aleatoria. + * Podrás configurar generar contraseñas con los siguientes parámetros: + * - Longitud: Entre 8 y 16. + * - Con o sin letras mayúsculas. + * - Con o sin números. + * - Con o sin símbolos. + * (Pudiendo combinar todos estos parámetros entre ellos) */ - +use rand::Rng; // 0.8.5 + // fn main() { - let secuencia = vec!["P1", "P1", "P2", "P2", "P1", "P2", "P1", "P1"]; - let puntos = vec!["Love", "15", "30", "40"]; - let mut jugador1 = 0; - let mut jugador2 = 0; - let mut puntos1; - let mut puntos2; - for ele in secuencia { - if ele == "P1" { - jugador1 += 1; - } else if ele == "P2" { - jugador2 += 1; - } - if jugador1 < puntos.len() { - puntos1 = puntos[jugador1].to_string(); - } else { - puntos1 = "+".to_string(); - } - puntos2 = if jugador2 < puntos.len() { - puntos[jugador2].to_string() - } else { - "+".to_string() - }; - if jugador1 > 2 && jugador2 > 2 && jugador1 == jugador2 { - println!("Deuce"); - } else if jugador1 > 2 && jugador2 > 2 && jugador1 + 1 == jugador2 { - println!("Ventaja P2"); - } else if jugador1 > 2 && jugador2 > 2 && jugador2 + 1 == jugador1 { - println!("Ventaja P1"); - } else if jugador1 > 3 && jugador1 > jugador2 { - println!("Ha ganado el P1"); - } else if jugador1 > 3 && jugador2 > jugador1 { - println!("Ha ganado el P2"); - } else { - println!("{} - {}", puntos1, puntos2); - } - } + let mut ch: char = 'A'; + + println!("ASCII value: {}", ch as u32); + + ch = '&'; + println!("ASCII value: {}", ch as u32); + + ch = 'X'; + println!("ASCII value: {}", ch as u32); + + let num: u8 = rand::thread_rng().gen_range(0..255); + println!("{}", num as char); }