diff --git a/src/prob2/mod.rs b/src/prob2/mod.rs index d938ce7..10513e5 100644 --- a/src/prob2/mod.rs +++ b/src/prob2/mod.rs @@ -55,38 +55,10 @@ impl Into for ResultPlay { } } -pub fn round_score(play: char, counter_play: char) -> i32 { - let coup = Play::from(play); // translate to the play - let counter = Play::from(counter_play); // translate to the play - if coup == counter { - (ResultPlay::Draw as i32) + (counter_play as i32) - } else { - use Play::*; - use ResultPlay::*; - match (&coup, &counter) { - (Rock, Paper) => (Win as i32) + (counter as i32), - (Rock, Scissors) => (Loss as i32) + (counter as i32), - (Paper, Rock) => (Loss as i32) + (counter as i32), - (Paper, Scissors) => (Win as i32) + (counter as i32), - (Scissors, Rock) => (Win as i32) + (counter as i32), - (Scissors, Paper) => (Loss as i32) + (counter as i32), - _ => panic!("Case not covered, impossible to reach."), - } +pub fn winning(play: Play) -> char { + match play { + Play::Rock => Play::Paper.into(), + Play::Paper => Play::Scissors.into(), + Play::Scissors => Play::Rock.into(), } } - -pub fn solve_part1(file_path: &str) -> i32 { - let contents = - std::fs::read_to_string(file_path).expect("Please provide a text file as an argument."); - let lines: Vec<&str> = contents.split('\n').collect(); - lines - .iter() - .map(|line| { - let first: char = line.chars().nth(0).unwrap_or('R'); - let last: char = line.chars().nth(2).unwrap_or('R'); - round_score(first, last) - }) - .collect::>() - .iter() - .sum() -}