diff --git a/rust/day2/input b/rust/day2/input new file mode 100644 index 0000000..807fbce --- /dev/null +++ b/rust/day2/input @@ -0,0 +1,2500 @@ +C Z +B Y +C X +B Z +C Y +B Y +C Z +C Z +B Y +B X +C Y +B Y +B Z +A Z +A Y +B X +C Y +C Z +B Z +A Y +C Y +C Z +A Y +C Z +B X +B Y +B Y +A Y +C Z +B Y +B Y +B Y +C Z +C Y +B X +C Y +A Z +C Y +B X +B Z +C Z +C Z +B X +A Y +A Y +C Z +C Z +C Z +B Y +C Y +B Y +C Z +C Z +A Z +B Y +C Y +B X +A Y +C Y +B Y +C Z +A Y +B Y +B Y +B Y +B Z +C Y +A X +C Y +B Y +C Z +A Z +B X +C Z +C X +A Y +C Y +B Z +C Y +C Z +B X +C Z +C Y +B Y +B Y +B Y +B Y +A Y +C Z +C Z +B Y +B Y +C Z +B Z +B Y +B Y +B Y +A Y +B Z +B Y +C Y +B X +B Y +B X +C Z +B X +C Y +B Z +C Z +C Z +B Y +B Z +C Z +B X +C Y +B Y +C Y +C Z +C Y +B Z +C Z +B X +B Y +C Y +B X +B Z +B Y +C Y +B X +C Y +C Z +B Y +B Y +B X +C Y +C Z +C Z +B X +C Y +C Z +B Y +B Z +C Y +C Y +C Z +C Y +C Z +B Y +B Y +C Z +C Y +C Y +C Y +B Y +B Y +A Y +C Z +B X +B Y +C Z +C Z +C Z +B Y +B Z +C Y +C X +B Y +C Z +C Z +B Y +C Z +C Z +C Z +B Z +C Y +B Y +B X +C Z +B X +B X +B Y +C Z +B X +C Z +B Z +C Z +B X +A Y +B X +A Y +A Y +A Z +C Y +B Z +B Z +B X +C Y +C Y +B Y +C Z +B X +C Z +B Y +B Z +C Z +C Z +B Y +C Y +B Y +C Y +A Y +C Z +C Y +C Y +B Y +B Z +C Y +B X +B Z +A Z +C Y +B X +B Y +B Y +B Y +B Z +C Z +A X +B Z +B X +C Y +B Z +B Y +A Y +C Z +B X +C Z +B Z +C Z +B Y +C Z +C Y +B X +C Z +C Y +B Y +C Z +C Y +C Z +C Y +B Z +A Y +B Y +B X +C Y +A X +C Z +A Y +C Z +B Y +C Z +B Y +C Z +B Y +B Y +B Y +B Y +A Y +C Z +B Y +A Z +B Z +C Y +B Y +B Z +A Y +C Z +B Y +B Y +C Z +A Z +B X +A Y +C Z +B Z +B Z +B Y +B X +A Y +B Y +A X +C X +B Z +B Y +C Y +C Z +C Y +C Z +B Y +B Z +C Y +A Z +C Y +C Y +C Y +A Z +C Y +C Z +C Z +C Z +C X +B Y +B Y +C Y +C Z +C Y +B Y +C Y +C Z +C Z +B Z +B Y +B Y +B Y +C Z +C Y +B X +C Y +B Z +B Y +B Y +B Y +C Y +C Y +C Z +C Z +C Y +B X +C Y +B Y +B Z +B Z +B Z +C Z +B X +C Y +C X +C Y +B X +C Z +A Y +A Y +B X +C Z +A Z +C Y +C Z +A Y +C Z +B Y +B Y +C Y +B Y +C Y +B Y +C Y +B Y +C Y +C Y +B Y +C Z +B Z +C Y +A Y +C Y +A Y +B X +C Y +A Y +B Z +B Y +C Y +B Y +C Y +B Y +C Y +C Z +C Y +C Z +B Y +C Y +C Z +B Y +B Z +C Y +A Y +C Z +C Z +C Z +B Z +C Y +A Y +B Z +A Y +B Y +C Y +C Z +C Y +A Y +B X +A Z +C Z +C Y +B X +C Z +A X +C Z +C Y +C Z +B Y +C Y +C Y +B Y +C Y +C Z +C Y +C Y +C Y +A Y +C Z +C Y +C Z +C Z +B X +A Y +B X +B Y +A Y +B Y +A Y +C Z +A Y +C Y +C Y +B Y +C Y +B Z +C Y +C Z +B Z +B Y +B X +B Y +B Y +C Y +C Y +B Y +B X +C Z +B X +B X +A Y +B Z +B X +A Y +C Y +C Y +B X +B Z +C Y +B Y +B X +B X +C Y +C Z +B Y +B Y +B Y +A Y +A Y +C Z +C Z +C Y +B X +C Y +C Y +B Z +B Z +A X +C Y +C Y +A Z +A Y +B X +B Y +C Y +B Y +C Z +B Y +C Y +B Y +C Z +C X +C Z +A Z +B X +A Z +C Z +B Y +C Y +B Z +C Y +B X +C Y +C Z +B Y +A Y +C Y +C Y +B Z +B Y +B X +C Z +B Y +C Y +C Y +C Y +A Z +B Y +B Y +C Y +B Y +C Z +B Y +C Y +B Y +C Z +B X +C Y +B Y +B X +C Y +C Z +C Y +B X +B Y +C Y +B Z +B X +C Y +B X +B Y +B Z +C Y +B Y +C Y +B Y +B Y +C Y +B Z +B Y +C Z +C Z +B X +A X +C Z +B Z +B Y +B X +C Z +C Z +B Z +A Z +B Y +C Y +C Z +C Y +C Y +C Y +C Z +B Y +B Y +C Y +C Z +C Z +C Y +C Y +C Z +B Y +C Y +B Y +B Y +A Y +C Y +A Y +C Z +C Y +C Z +C X +B X +C Z +A Y +B X +C Z +C Z +C Y +B Z +B Y +A Y +C Z +B X +B Y +B Z +B X +C Y +B Y +C Z +C Z +C Z +C Y +A Y +C Z +C Z +B Y +B Y +B Y +C Y +C Y +C Z +B X +C Y +C Y +C Y +B Y +C X +B Y +B Y +C Y +A Z +C Y +C Z +A Y +C Y +B Z +C Y +C Z +A X +B X +C Z +C Y +B Y +C Y +C Y +B Y +C Z +C X +C Y +C Y +B X +C Y +B Y +C Y +C Z +A Z +B X +B X +C Z +C Y +B Y +B Z +B Y +B Z +A X +B X +B X +B X +C Y +A X +C Z +C Z +B Y +B X +B Y +B Y +C Z +B Z +C Y +C Y +B X +B Z +C X +A X +B Y +C X +C X +B Y +C Z +C Z +C Z +B X +B Z +C Y +B Y +A Y +C Z +B Z +A Z +B X +B X +B X +B Y +B X +B X +B X +B Y +C Z +C Y +C Y +C Y +A Y +C Z +C Y +C Z +C Y +B Y +A X +A Z +A Z +C Z +B Z +B Z +B Y +C Z +B Y +B X +B Y +B Z +A Y +B Y +B Y +B Z +C Y +B Y +C Y +B Y +C Y +B Z +C Z +B Z +C Y +B Z +B Y +B Y +A Y +C Z +B Y +B X +B Y +B X +C Z +C Y +B Z +C Z +C Z +A Z +C Z +B X +C Z +C Z +C Z +C Y +B Y +B X +C Y +C Y +C Z +C Z +B X +C Y +C Z +B Z +A Y +A Y +B Y +C Y +B Z +A X +C X +C Y +A Y +B Z +B X +C Z +C Y +B Y +C Z +C Y +B Z +C Z +C Z +C Y +B X +C Z +C Y +B Y +C Y +C Y +C Z +B X +C Y +C Z +C Z +C Y +C Y +B Y +C Y +B X +C Z +B Z +B X +A Z +C Z +B Z +C Z +C Y +B X +C Z +A Z +A Y +A Y +C Y +B Y +B X +C Y +C Z +B X +A Y +B Y +B X +B X +C Y +B Y +C Y +C Z +B Y +B X +C Y +B Y +B X +A Y +B Y +B Y +C Y +A Y +B Y +A Z +C Z +A X +C Z +C X +C Z +C Z +C Y +B Z +B Z +A Z +A Y +B Y +B Y +C X +C Z +C Z +B Z +A X +C Y +C Z +A Y +A Y +B X +C Z +B Z +A X +C Z +C Y +B X +C Y +C Y +C Z +C Z +B X +C Z +A Y +B Y +B X +B Y +C Y +B X +C Y +B Y +A X +C Z +C Y +C Z +B Z +C Y +C Y +C Z +C Z +A Y +C Z +B Y +C Z +C Y +B Y +C Y +A Y +C Y +A Z +C Y +A Z +C Z +C Z +B Y +C Z +C Y +A Y +C Y +A Y +C Z +B Z +B Y +B Z +C Z +B Y +A Z +B Y +C Z +A Y +B Y +A Z +B X +B Z +B X +B Y +B Y +B Y +C Y +C Z +B Y +C X +B Y +A X +B Y +B Y +C Z +C Z +A X +C Z +C Y +C Z +B Y +B Y +B X +B X +A X +B X +B Y +B Y +C Z +B Z +B Y +B Y +B Z +B Y +C Z +C Z +B X +B Z +A Z +B Z +C Z +B Z +C Y +C Z +C Z +B X +C Y +C Y +B X +B Y +C Y +B Y +C Z +C Y +B Y +B X +A Z +C Z +C Y +C Y +B Z +B X +A Z +B Z +C Z +C Z +B X +B X +C Z +C Y +B Z +C Z +C Z +B X +C Y +C Y +B Y +C Y +B Z +C Z +A Y +B X +C Y +C Z +B Y +B X +B X +A Z +B Y +B Y +C Z +B X +A Y +A X +C Y +B Z +B X +A Y +B Y +B X +C Z +C Z +C Z +C Z +C Z +A Y +C Y +C Z +C Y +C Z +C Y +A Y +B Y +C Y +C Y +B Y +C Z +A X +B Y +C Y +C Z +B Y +C Z +B Y +A Z +B X +B X +A Y +B X +C Y +B Z +B Y +B Z +C Y +A Y +C Z +A Y +A Y +C Z +C Z +C Y +B X +A Y +C X +C Y +C X +C Z +B Y +B Y +C Z +B X +B Y +C Z +B X +C Z +C Z +B Y +A Y +B X +B Y +C Z +B Y +C Z +A Y +B X +C Z +C Y +A Y +C Z +A Y +C Y +A Y +C Z +B X +B Y +B Z +A Y +C Z +C Y +C Z +B Z +C Z +C Y +C Y +B Z +C Z +C Y +B X +B Y +A Y +A Y +B X +C Y +C Y +C Z +B Y +B Z +B X +B Y +B Y +B Z +B Y +B Y +B Z +B Y +B X +C Y +C Y +C Z +B X +C Z +C Y +A Y +C Y +C Z +B Y +A Z +C Y +C Z +B X +A Y +C Y +C Y +C Y +A Y +A Y +C Y +B X +C Z +A Y +C X +B Y +C Y +B Y +C Y +B Z +C Y +A Z +B Y +A Y +A Y +B X +B Y +B Y +B Y +C Y +B Z +C Z +B X +B X +B X +C Y +B X +C Z +B Z +C Z +B Y +C Y +C Z +C Y +C Y +B Y +B Y +B Z +B Y +C Z +B Y +B X +C Z +A Z +C Y +C Y +C Z +B Y +A Y +C Z +C Y +B Z +C Z +B Y +B Z +B X +C Y +B X +C Z +B Z +C Z +C Z +B Y +B X +B X +C X +C Z +C Z +A Y +C Z +C Y +C Y +C Y +C Z +C Y +B X +B X +B X +C X +C Y +B X +B X +B X +B Z +A Z +B X +C Y +B Y +C Z +A Z +B Y +B X +B Z +C Y +B Z +B Y +A Z +C Z +B Y +C Y +B Y +B X +C Y +A Z +C Z +C Y +B Y +B X +C Y +C Z +C Y +C Z +B Y +A Z +B Y +B X +C Y +C Y +A X +B X +C Y +C Z +A Z +C Z +C Y +C Z +B Y +B Y +C Z +A Y +C Z +B X +B X +B Y +B Y +B X +B X +B X +B Z +B X +A X +A Y +C Z +C Y +A Y +C Y +C Z +C Y +B Y +C Z +A Y +B X +B X +C Y +C Y +B Z +B Z +B Z +B Y +B Y +B Y +B Y +C Y +C Z +B Z +A Y +B Z +C Y +C Y +C Z +B X +A Y +C Y +B X +B Z +A Y +C Y +C Z +A X +C Z +B X +B X +B Z +A Y +C Z +B Z +C Z +A Y +A Y +B Y +B Y +A Y +C Y +A Y +B X +C Y +C Z +B Y +B Z +C Z +C Y +B Y +C Y +C Z +B Y +C Z +C Y +A Y +C Y +C Y +B X +C Y +B Y +B Y +B X +C Z +B Y +C Y +C Y +B Y +B Y +B Z +C Y +C Z +A X +C Z +C Y +C Y +C Y +B Z +C Y +C Y +C Y +A Y +C Y +A Y +C Y +C Y +C Y +C Y +C Y +C Y +A Z +B Z +B Y +C Z +B Y +C Z +B Y +C Z +B Y +C Z +C Z +C Z +C Y +C Z +B Y +B Y +C Y +C Z +B Z +C Y +A Y +C Y +C Z +C Y +C Y +A Z +B Y +C Y +B X +B Y +C Y +C Z +B Y +C Y +B X +B X +B Y +C Y +B Z +B Y +A Y +B Y +B Y +B X +C Z +B Z +B X +C Z +A Z +B Z +C Y +C Z +C Y +B X +C Y +C X +B Z +C Y +C Y +B Y +C X +B Y +C Z +A Z +C X +A Y +B Y +B Y +C Z +C Z +B Y +B Y +B Z +C Z +C Y +C Z +B X +A Z +C Y +C Y +B Z +B X +B Y +B X +A Z +C Y +B Y +C Z +A Y +B Z +C Y +B X +B X +B Y +B Y +B Z +B X +C Z +C Y +B X +B X +B X +B Y +B X +B X +B Y +B Y +B Y +C Y +A Z +C Z +C Y +B Y +B Y +B Z +C Z +C Y +C X +B Z +A X +C Y +B X +B Y +C Y +A X +C Y +C Y +B Y +B Y +B Y +A Z +C Y +C Y +A X +C Y +A Z +C Z +B X +A Y +C Z +B Z +B Y +B Y +C Y +B Y +C Z +B X +C Z +B X +A Y +C Z +C Y +B X +B Z +B Y +B X +C Y +C Z +C Z +A Z +B Z +B Z +C Z +C Y +C Z +C Y +B Z +B Y +B Y +C Y +C Z +C Y +C Y +C Z +A Y +B Y +A Z +B Z +C Z +B X +A Y +B Y +C Y +C Z +A Y +C Y +B Y +B X +C Y +B Y +C Y +A Y +C Y +B Y +B Z +C Z +B X +B X +C Z +C Y +C Z +B Y +C Y +B Y +B Y +C Z +C Y +A Z +B Z +B X +C Z +C X +C Z +B X +C Z +C Y +B X +B Y +B Y +C Z +C Z +C Z +B Y +B Y +A X +B X +C Z +C Y +C Z +B Y +C Y +B Y +C Y +C Z +C Z +C Y +C Y +B X +B Y +B Y +C Y +B Y +A Y +B Y +B Z +C Z +C Z +A Z +C Z +B Z +B Y +C Z +B Y +B X +B Y +A Y +A Y +B Y +C Y +B Z +B Y +B Y +B Y +B X +B X +B X +B Z +B Z +C Z +A X +C Z +B Y +C Z +A Y +C Z +C Y +A Y +B Z +B Y +C Z +B Y +B X +B Z +C Y +C Z +C Z +C Y +B X +B X +C Y +C Y +A Y +C Y +B Y +C Y +C Y +C Y +B X +C Z +B Y +C Z +B Y +B Y +A Y +B Y +C X +B Y +C Y +B Y +C Z +C Y +B X +B Y +C Y +B Y +B Z +B X +C Z +A X +C Y +C Y +B X +B Z +B X +C Y +C Y +A Y +B Y +C Y +C Z +B Y +B Y +B Z +A Y +B Z +B X +B Z +C Y +B Y +C Y +C Y +B X +B Y +A Y +C Y +C Z +C Y +B X +B X +C Y +B Y +A Z +C X +C Z +B Y +C Z +C Y +C Z +C Y +A Z +B Y +C Y +B Z +B Y +B X +B Y +B X +C Z +C Y +B Y +C Y +C Z +C Z +B Y +B X +C Y +C Y +B Y +B X +C Z +B X +C Z +C Y +B Y +C Y +C Z +C Y +B Y +C Z +A Z +A Y +C Y +A Y +C Y +B Y +B Y +B Y +C Y +C Z +C Y +C Y +B X +B X +C Y +B X +C Y +A Y +B Y +B Y +C Z +C Z +B X +C Z +C Z +B Y +C Z +C Z +B Z +B Z +C Y +A Z +C Z +C Z +B X +C Z +B Z +B Y +A Y +B X +B Z +A Y +B Y +B Y +B X +B Y +C Y +A Z +B Y +C Y +A Y +C Y +B Y +C Y +C Y +A Y +C Y +B Y +B Y +B Z +C Z +C Z +C Y +B Y +C Y +B Z +B X +C Y +C Y +B Y +B Z +B Y +A Y +A Y +A Z +C Y +B Y +B Y +C Z +C Z +C Y +C Z +C Y +B X +C Z +C Y +C Y +A Y +B Z +C Z +A Y +B Z +B Y +B Y +B Y +B Y +C Y +C Y +A Y +C Z +C Z +A Z +B Y +B X +B Z +A Z +C Z +B X +B Y +A X +C Y +B Z +A Y +C Z +C Y +A Y +B X +C Y +B X +C Z +B X +B Y +B X +A Z +B Y +C Z +C Y +B Y +A Y +B X +C Y +B Z +B X +A Z +A Y +C Y +C Z +C Y +B X +C Y +C Z +B Y +A Y +C Y +C Z +C X +B Y +C Y +B X +B Z +B Y +C Z +C Z +C Y +B X +C Y +B Z +C Z +C Y +C Y +C Y +C Z +C Y +B Y +C Y +A Y +C Y +B X +B Y +A X +B Y +B Y +B Y +A Y +B X +B Z +B Z +C Z +A Z +C X +B Z +B Y +C Y +C Z +B Z +B Y +B X +C Y +C X +C Y +C Z +A X +B X +B Y +B Y +C Z +B X +B Z +B X +B X +B Y +C Y +B Y +B Z +C Y +C Y +B Z +B Y +C Y +C Y +C Z +C Z +C Z +B Y +B Z +C Y +A Z +C X +B Y +C Y +C Y +B Y +C X +C Y +B Y +C Y +B Y +B Y +C Y +C Z +C Z +C Z +C Z +B X +C Z +C Z +B Y +C Y +A Z +B X +C Z +B Z +C Y +C Y +B Y +B Y +B Z +C Y +B Z +C Z +B Y +C Z +C Z +B X +B Z +C Y +C Y +C Z +B X +C Z +B X +C Y +C Y +B X +C Z +C Z +B Y +C Z +B Y +B Y +C Y +C Y +B Y +C Y +B Y +A Z +B Y +B Y +B Z +C Y +B Z +B Y +C Y +B X +B Z +B Z +C Y +C Z +C Z +B Z +C Y +B Y +C Z +B X +B X +C Z +B X +C Y +B Y +C Y +C Z +C Z +C Y +C Z +B Z +C Y +C Z +C X +B Z +B Y +A Z +C Z +A Y +C Z +B Z +B X +C Y +B X +C Y +C Z +C Z +B Y +B Y +B X +C Y +C Z +B X +C Y +C X +C Y +C Y +C Z +C Z +B X +C Z +B Y +C Y +B Y +B Y +B Y +B Z +C Z +A Y +B X +A X +A Z +C Z +A Z +B Z +C X +B Z +B X +B Y +B X +C Y +C Z +C Y +B X +B Y +B X +B Y +A Y +C Z +B Y +C X +B Y +B Y +A Z +B Y +C Z +C Z +A Z +C Y +B Z +C Y +B Y +A Y +A Z +B Y +B Z +B X +B Y +B Y +C Y +C Z +A Y +C Z +A Y +C Z +C Y +C Y +B Y +B Z +C Y +C Z +B Y +C Y +C Y +B X +B Y +C Z +C Z +C Y +B Z +B Y +C Z +B X +C Z +B Z +C Y +C Y +C Y +C Z +B Y +C Y +C Y +B Y +C X +C Z +B Y +C Z +A Y +C Y +C Y +C Z +C Y +C Z +B Z +B Y +C Z +C Z +C Y +B X +B Y +C Z +B Y +C Z +C Z +B Y +C Y +B X +B Y +A Y +B X +C Z +B Y +C Z +C Y +C Z +B X +B Y +C Y +C Z +C Y +B Y +B Z +B X +B Y +C Z +C Z +C Z +B Z +C Y +C Z +B Z +C Z +A Y +C Z +B X +B Z +C Y +C Z +C Y +B Z +B Y +C Y +B Z +A Y +B X +C Y +C Y +B Y +B Y +C Y +C X +B Z +B X +C X +C Y +B Z +C Z +A Y +B Z +B Z +B Z +B X +B Y +B X +C Z +C Z +A Z +B Z +C Z +C Z +B X +A Y +C Y +B Y +B Y +B Y +B Y +B Y +C Z +C Y +C X +C Y +B Y +B Y +C Y +C Z +B Y +A X +A Y +B X +A X +C Y +C Z +C Z +B Y +B Z +A Y +A Y +C Y +B Z +C Z +C Y +B Y +C Y +B X +B X +B X +C Z +B Y +C Y +B Z +C Z +A X +A Y +C Y +B Y +B Y +A Z +B X +C Z +C Z +B X +C Z +C Z +C Z +C Y +C Z +B X +B X +C Y +B Z +A Y +C Z +B Y +C Z +C Y +A Y +C Z +A Z +C Z +B Z +A Y +A Y +C Z +B Y +C Y +C Z +C Z +B Y +C Z +C Z +C Z +B Z +C Y +C Y +B Y +C Y +C Z +A X +C Z +C Z +C Y +C Z +B Y +C Y +B Y +A Y +C Y +A Y +B Y +B Y +C Z +C Z +C Z +B X +B Y +B Y +C Y +C Z +C Y +B X +B Y +C Y +C Z +C Z +C Z +A Y +C Y +C Z +B X +C Y +C Z +A Y +B Y +C Y +C Y +A X +C Z +B Z +B X +C Z +C Y +B Y +B Y +C Y +A Y +B Y +B Y +C Y +B X +C Z +C Z +C Y +C Y +B Y +C Z +C Y +C Z +C Z +C Z +B Y +C Z +B Y +B Y +B Y +B X +A Y +C Y +C Y +B X +B X +C Z +B X +C Z +B X +B Y +C Z +B X +B Y +C Z +B X +B Y +C Y +B Y +B Y +C X +B Y +B Y +B X +C Y +C Y +A Z +B Y +C Y +B Z +B X +B X +A Y +A Y +B Z +B X +B X +C Y +C Y +C Y +B Y +C Y +B Y +A Y diff --git a/rust/day2/src/main.rs b/rust/day2/src/main.rs index 8d525ec..989e54c 100644 --- a/rust/day2/src/main.rs +++ b/rust/day2/src/main.rs @@ -1,8 +1,16 @@ +use std::fs::read_to_string; use std::collections::HashMap; mod rps; fn main() { + // Checking if the file is found. + 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"); + player.retain(|s| s == "X" || s == "Y" || s == "Z"); + 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);