Compare commits
3 Commits
1e276e61ff
...
fc49a2add1
Author | SHA1 | Date | |
---|---|---|---|
|
fc49a2add1 | ||
|
d35a92ed23 | ||
|
e8b6170797 |
@ -1,10 +1,16 @@
|
||||
#[repr(u8)]
|
||||
#[derive(PartialEq, Eq)]
|
||||
pub enum Play {
|
||||
Rock,
|
||||
Paper,
|
||||
Scissors,
|
||||
}
|
||||
|
||||
enum ResultPlay {
|
||||
Win,
|
||||
Draw,
|
||||
Loss,
|
||||
}
|
||||
|
||||
impl Into<char> for Play {
|
||||
fn into(self) -> char {
|
||||
match self {
|
||||
@ -25,12 +31,27 @@ impl Into<i32> for Play {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn translate(letter: char) -> Option<Play> {
|
||||
match letter {
|
||||
'A' => Some(Play::Rock),
|
||||
'B' => Some(Play::Paper),
|
||||
'C' => Some(Play::Scissors),
|
||||
_ => None,
|
||||
impl From<char> for Play {
|
||||
fn from(letter: char) -> Self {
|
||||
match letter {
|
||||
'A' => Play::Rock,
|
||||
'B' => Play::Paper,
|
||||
'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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user