WIP on problem 2
This commit is contained in:
parent
13393c7ea8
commit
1e276e61ff
@ -1 +1,2 @@
|
||||
pub mod prob1;
|
||||
pub mod prob2;
|
43
src/prob2/mod.rs
Normal file
43
src/prob2/mod.rs
Normal file
@ -0,0 +1,43 @@
|
||||
#[repr(u8)]
|
||||
pub enum Play {
|
||||
Rock,
|
||||
Paper,
|
||||
Scissors,
|
||||
}
|
||||
|
||||
impl Into<char> for Play {
|
||||
fn into(self) -> char {
|
||||
match self {
|
||||
Play::Rock => 'X',
|
||||
Play::Paper => 'Y',
|
||||
Play::Scissors => 'Z',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Into<i32> for Play {
|
||||
fn into(self) -> i32 {
|
||||
match self {
|
||||
Play::Rock => 1,
|
||||
Play::Paper => 2,
|
||||
Play::Scissors => 3,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn translate(letter: char) -> Option<Play> {
|
||||
match letter {
|
||||
'A' => Some(Play::Rock),
|
||||
'B' => Some(Play::Paper),
|
||||
'C' => Some(Play::Scissors),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn winning(play: Play) -> char {
|
||||
match play {
|
||||
Play::Rock => Play::Paper.into(),
|
||||
Play::Paper => Play::Scissors.into(),
|
||||
Play::Scissors => Play::Rock.into(),
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user