This repository has been archived on 2023-10-18. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
curso_rust_tinchicus/ejercicios/reto06/src/main.rs

53 lines
1.9 KiB
Rust

/*
* Crea un programa que calcule quien gana más partidas al piedra,
* papel, tijera, lagarto, spock.
* - El resultado puede ser: "Player 1", "Player 2", "Tie" (empate)
* - La función recibe un listado que contiene pares, representando cada jugada.
* - El par puede contener combinaciones de "🗿" (piedra), "📄" (papel),
* "✂️" (tijera), "🦎" (lagarto) o "🖖" (spock).
* - Ejemplo. Entrada: [("🗿","✂️"), ("✂️","🗿"), ("📄","✂️")]. Resultado: "Player 2".
* - Debes buscar información sobre cómo se juega con estas 5 posibilidades.
Reglas del juego piedra papel tijera lagarto Spock.
Tijera corta a papel.
Papel envuelve a piedra.
Piedra aplasta a lagarto.
Lagarto envenena a Spock.
Spock rompe a tijera.
Tijera decapita a lagarto.
Lagarto devora a papel.
Papel desautoriza a Spock.
Spock vaporiza a piedra.
Piedra aplasta a tijera.
*/
use rand::Rng;
fn main() {
let simbolos: Vec<&str> = vec!["piedra", "lagarto", "spook", "tijera", "papel"];
// random jugadas
let num1 = rand::thread_rng().gen_range(0..simbolos.len());
let num2 = rand::thread_rng().gen_range(0..simbolos.len());
let jugada: Vec<&str> = vec![simbolos[num1], simbolos[num2]];
println!("{} {}", jugada[0], jugada[1]);
if jugada[0] != jugada[1] {
let mut ordenado: Vec<&str> = Vec::new();
let mut index = simbolos.iter().position(|&r| r == jugada[0]).unwrap();
// println!("{} {}", index, jugada[0]);
for _ in 0..5 {
if index == simbolos.len() {
index = 0
}
ordenado.push(simbolos[index]);
index = index + 1;
}
if ordenado[1] == jugada[1] || ordenado[3] == jugada[1] {
println!("Player 1");
} else {
println!("Player 2");
}
} else {
println!("Empate");
}
}