1
0
Fork 0

Compare commits

..

3 commits

Author SHA1 Message Date
Florent DENEF
fc49a2add1 Casting made easy 2022-12-02 15:27:07 +01:00
Florent DENEF
d35a92ed23 Adding results enum for the game. 2022-12-02 15:26:30 +01:00
Florent DENEF
e8b6170797 Changing inputs. 2022-12-02 13:33:01 +01:00
3 changed files with 2528 additions and 7 deletions

2500
prob2.txt Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,10 +1,16 @@
#[repr(u8)] #[derive(PartialEq, Eq)]
pub enum Play { pub enum Play {
Rock, Rock,
Paper, Paper,
Scissors, Scissors,
} }
enum ResultPlay {
Win,
Draw,
Loss,
}
impl Into<char> for Play { impl Into<char> for Play {
fn into(self) -> char { fn into(self) -> char {
match self { match self {
@ -25,12 +31,27 @@ impl Into<i32> for Play {
} }
} }
pub fn translate(letter: char) -> Option<Play> { impl From<char> for Play {
match letter { fn from(letter: char) -> Self {
'A' => Some(Play::Rock), match letter {
'B' => Some(Play::Paper), 'A' => Play::Rock,
'C' => Some(Play::Scissors), 'B' => Play::Paper,
_ => None, 'C' => Play::Scissors,
'X' => Play::Rock,
'Y' => Play::Paper,
'Z' => Play::Scissors,
_ => panic!("Only A, B, C, X, Y or Z letters are available."),
}
}
}
impl Into<i32> for ResultPlay {
fn into(self) -> i32 {
match self {
ResultPlay::Win => 6,
ResultPlay::Draw => 3,
ResultPlay::Loss => 0,
}
} }
} }