diff --git a/rust/day2/input b/rust/day2/input index 807fbce..a2096ca 100644 --- a/rust/day2/input +++ b/rust/day2/input @@ -2497,4 +2497,4 @@ C Y B Y C Y B Y -A Y +A Y \ No newline at end of file diff --git a/rust/day2/src/main.rs b/rust/day2/src/main.rs index 989e54c..1e9830f 100644 --- a/rust/day2/src/main.rs +++ b/rust/day2/src/main.rs @@ -5,6 +5,7 @@ mod rps; fn main() { // Checking if the file is found. + let mut score : u64 = 0; let mut oponent : Vec = read_to_string("input").unwrap().split_whitespace().map(|s| s.to_string()).collect(); let mut player = oponent.clone(); oponent.retain(|s| s == "A" || s == "B" || s == "C"); @@ -12,10 +13,10 @@ fn main() assert!(oponent.len() == player.len(), "Oponent and Player don't play as many turns."); let converter : HashMap = rps::get_converter(); - let player = converter.get(&'Y').unwrap().battle(converter.get(&'A').unwrap()); - println!("First battle = {}", player); - let player = converter.get(&'X').unwrap().battle(converter.get(&'B').unwrap()); - println!("Second battle = {}", player); - let player = converter.get(&'Z').unwrap().battle(converter.get(&'C').unwrap()); - println!("Third battle = {}", player); + for tools in oponent.iter().zip(player.iter_mut()) { + let o = tools.0.char_indices().next().unwrap().1; + let p = tools.1.char_indices().next().unwrap().1; + score += converter.get(&p).unwrap().battle(converter.get(&o).unwrap()); + } + println!("Final score: {}", score); } \ No newline at end of file