diff --git a/prob1.txt b/input.txt similarity index 100% rename from prob1.txt rename to input.txt diff --git a/prob2.txt b/prob2.txt deleted file mode 100644 index 0829cce..0000000 --- a/prob2.txt +++ /dev/null @@ -1,2500 +0,0 @@ -C Y -A Z -B X -C Y -B Y -C X -C Y -B X -B X -A Z -C X -B Y -B X -B X -A Z -B X -C Y -C Y -C X -B X -B X -C Y -C Y -A Z -C Y -A X -B Y -C Y -A Z -B X -B X -C Y -A Y -A Y -C Y -C Z -C Y -C X -C X -B X -C Y -A Y -C Z -B X -C Y -B Y -C Y -A Y -B X -B Y -A X -A Y -B X -B X -B X -A Z -C Y -B Y -A X -A Y -C X -C X -C Y -B Y -C X -B X -C X -A Z -B Y -C X -C Y -B X -B X -C Y -B X -C Y -A Z -B Y -B X -B X -B X -C Y -C Y -A Y -C X -C X -A Y -C Y -B X -A Y -C X -C Y -C X -C X -B Z -C Y -B X -C Y -A Y -B Y -B Y -B X -A Y -C Y -B X -B Y -A Y -B X -C Y -C Y -B Y -B Y -C Z -C Y -C X -B X -C Y -B X -C Y -A Y -A Y -A Z -C Z -A Y -B Y -B X -C X -C Y -C X -B X -B X -A Y -A Y -C Y -C Y -A Z -B X -B X -B X -B Y -B X -B X -C Y -C Y -C Y -C X -B X -C Y -B X -A Z -C Y -C X -A Z -A Y -A X -C Y -B X -A Z -C Y -A Z -C Y -B Y -A Z -A Y -A X -A Z -A Z -C Y -B X -C Y -C Y -A Z -B X -C Y -B X -C Y -A Y -B X -A Z -A Z -C Y -A Z -B Y -B X -A Z -B X -B X -B X -B Y -C Y -C Y -C X -A Y -C X -B X -C Z -B Y -C Y -A Y -C X -C X -B X -B X -B X -A Y -B Y -B X -B X -C Y -A Y -B X -B X -A Z -C Y -C Y -B Y -B X -A Y -B X -B X -A Z -C Y -A Y -B X -A Z -C Z -A Z -B X -B X -B Y -A Z -C X -B X -C Y -B X -C Y -C X -A Z -B X -A Z -C Y -B X -C X -A Y -B Y -C Y -B X -B X -B X -B Y -B X -A X -C Y -B Y -B Y -C Y -C Y -C Y -A Y -A Y -A X -A Z -C Y -A Y -C X -C Y -B Y -C Y -C Y -B X -C Y -B X -C Y -C Y -B X -B Y -B Y -B X -B Y -B X -C Y -C Y -C X -C Y -C X -C X -B Y -A X -C Y -A Y -C Z -B X -C Y -A Y -A Y -C Y -C Y -B X -B X -B Y -B Y -C Y -C X -A Z -C Y -C Y -C Y -B Z -A Z -B X -B Y -C Y -C Y -B X -A Z -A Z -B X -C X -C Y -A X -C Y -B Y -B X -B X -C Y -B Y -A Y -B X -B X -C Z -B Y -B X -C Y -C Y -C Y -B X -B Y -C X -B Y -C Y -C Y -C X -B X -C Y -B X -C Y -B X -A Z -C Y -A X -A Z -B Z -B Y -C Y -B X -C Y -C X -B X -B X -B Y -A Y -C Y -B X -A Z -C Y -B X -B X -B X -C Z -B Y -A Y -B X -C X -A Y -B X -B X -B X -C Y -C Y -B X -C Y -C Y -B X -B Y -B Y -C Y -B Y -B X -C X -A Z -B Y -B X -C Z -A Y -B X -C X -B X -B X -C Z -B Y -A X -C X -C X -B X -C Y -A Z -B X -B X -B X -B X -A Y -C Y -B Y -B X -A X -B X -C X -C X -B X -C Y -B Z -A Z -B X -B X -C Y -B Z -B X -A Y -B X -A Z -B X -C X -B X -C X -B X -B X -C Z -B X -A Y -B X -C Z -B X -C Y -B X -B Y -B X -B X -C X -B Y -B Y -A Y -C Y -B X -B X -C Y -C Y -C Y -B X -A Z -C Y -C Y -A Z -B X -A Y -C X -B X -C Y -A Y -B Y -B Y -A Z -B X -B X -C Y -B X -B Y -B X -B X -B X -C Y -C Y -C Y -C X -B X -B X -C X -C X -B X -A Y -C Y -C Y -C Y -C Z -B X -B X -A Y -B X -A Y -C X -B X -B X -C Y -C Y -C Y -A Y -A Y -A Y -B X -C Y -B Y -B X -A Z -C Y -B X -A Y -B Y -B Y -B Y -B Y -C X -A Y -B X -A Y -B X -C X -C Y -B X -A Z -C Y -C Y -B Y -B X -B X -A Z -B Y -B Y -C Y -B X -C X -C Y -B X -B Y -B X -B X -C Y -B X -B Y -B X -C Y -B X -A Y -B X -C Z -B X -C Y -C Y -B X -B X -C Y -C Y -C Y -C X -B Y -B X -C X -B X -C Z -B X -C Y -A Y -B X -A Z -C Y -A Y -B X -A Z -C Y -C Y -B X -C Y -A Y -B X -C X -B Y -C Y -B X -C X -B X -B Y -A Y -A Y -A Y -B X -B X -B X -B X -B Y -B X -B X -B X -A Z -C X -C Y -A Z -C X -B X -C Y -B Y -C Y -B X -C Y -C Y -C Y -C Y -C Y -C Z -B X -B X -C Y -B X -A Y -C Y -C X -B Y -C Y -C Y -A Y -A Y -C Y -B Y -C X -B X -C Y -C Y -B X -B X -B X -A Z -B Y -B Y -A Y -C X -B Y -C Y -C X -B X -B X -C X -B X -C Y -C Y -B Y -C Y -B X -B X -A Z -B Y -A Z -A X -B Z -A Y -C Y -C Y -C Y -B X -A Z -A Y -B Y -C Y -B Y -B X -B X -A Y -C X -C Y -B X -A Y -A Z -B X -B X -C Y -B Y -C Y -C Y -B Y -B Y -B X -A Y -B X -B X -B X -B X -C Y -B X -B Y -C X -C Y -A Y -B Y -A Y -C Y -C Y -A Z -B X -C Y -A Z -A Y -B X -B X -B X -C Y -B X -C Y -B Y -B X -B Y -A Y -B X -C Y -C Y -B X -B X -C Y -C Y -C Y -B Z -C Y -B X -C Y -B Y -C Y -C X -B X -A Y -A X -A Z -A Z -B Y -C X -B X -B Y -B X -B X -A Z -B X -A Y -C Z -C Y -C Y -C Y -A Y -C X -C Y -A Z -C Y -B X -A Y -A Z -B X -A Y -C X -A Z -A Y -B X -B X -C Y -C Y -C Z -A Z -B X -A Y -B X -B X -B X -C Y -A Z -C Y -B X -B Y -C X -C Y -A Z -A Z -C Y -B Y -C Y -C Y -C X -C Y -C Y -B X -C Y -B X -B Y -C Y -C Y -C X -A Z -B X -B X -C X -C Y -C X -C X -B X -B Y -B Y -C Z -A Y -A Z -B X -B X -C Y -C Y -A Y -C Y -B Y -C Y -B X -C Y -B Y -B X -C Y -C Y -B X -C Z -A Y -B X -C Y -A Z -C X -C Y -A Y -B X -A Y -C Y -B X -C Y -B X -A Y -C Y -B Y -B X -B X -C Y -A Z -A Z -C X -A Y -B X -C Y -B X -C X -C Y -C Y -C Y -C Y -C X -B Y -B X -B X -C Y -B Y -B Y -B X -B X -B X -B Y -B X -B X -B X -C Y -A Y -A Y -B X -C Y -C Y -A Y -C Y -B Y -C X -B X -B X -A Y -C Y -B X -B X -B Y -C Y -B X -C X -B Y -A Y -A Y -C Y -C Y -C Y -C Y -C Y -B X -C Y -B Y -B X -B Y -C Y -B X -B X -B X -B Y -B X -B X -B X -C Y -B Y -C Y -B X -B X -B Y -C X -C X -C Y -B Y -B X -A Z -B X -B X -C X -C Y -C Y -B X -A Z -C Z -C Y -C Y -C Y -C X -B Y -B X -C Y -C Y -C Y -B Y -B Y -C Y -C Y -B Y -A Z -C Y -A Z -B X -C Y -A Y -B X -C Y -C Y -B X -A X -B X -B X -C Y -C Z -C Y -A Y -C Y -C Y -B X -B X -B X -B X -A Z -C Y -C Y -B Y -B X -C Y -C Y -C Y -B X -A Y -B X -C Y -B X -B X -C Y -C Y -B Y -B Y -C Y -B Y -C Y -A Y -A Y -A Y -C Y -C Z -B X -A X -C Y -A Y -C Y -A Y -B X -B X -B X -B X -B X -C Z -B X -C Y -C Y -B Y -A Z -A Z -C Y -B Y -C Z -A Z -C X -A Y -C Y -C Y -B X -C Y -B Y -B Y -C Y -A X -C Y -B X -A Y -C X -B Z -C X -B X -B Y -A Z -A X -B Z -C Y -B X -B Y -C X -A Y -C Y -C Z -B Y -B Y -B X -B X -C Y -B X -B Y -C Y -C X -C Z -C Z -C Z -A Y -B X -C Y -C Y -B X -A Y -B X -A Y -C X -C X -B Y -A Y -C Y -A Y -C Y -C Y -B X -B X -A X -B X -A Y -C Y -C Y -C X -A Y -B X -B Y -B X -B X -B Z -B X -A Y -C Y -B X -B X -A Y -A Z -C Y -C Y -A Z -A Z -B X -B X -C Y -B X -B X -A Y -A Z -B Y -B X -C Y -C Y -B X -B X -C X -C Y -B X -B X -B X -B X -B X -C Y -C Y -A Y -B Y -B X -A Z -C Y -B Y -A Z -C Y -C Y -B X -A Z -C Y -A Y -C X -B X -B X -B Y -B X -A Z -C Y -B X -B X -B X -B X -B X -B X -C Y -B X -B Y -B Y -B Y -C Z -C Y -B Y -A Y -A Y -B Z -B Y -B Y -B X -B Y -B Y -C X -A Z -C Y -C Y -C Y -B X -B Y -B X -C Y -C Y -C Y -B Y -A Y -C Y -B X -B X -C Y -B Y -C Y -B X -B X -B Y -A Y -C X -C Z -B X -A Y -C Y -B X -C Y -B X -C Z -C Y -C Y -C Y -A Z -C X -C Y -C Y -A Z -A Z -B X -A Y -C Y -C Y -B X -A Z -B X -C Y -B Y -B X -B X -C Y -C Y -B Y -C X -B Y -C Y -B Y -C Y -B X -C Y -B X -B Y -B Y -C X -C Y -A Z -C Y -C Y -C Y -A X -A Y -B Y -C X -B X -C Y -B X -A Y -B X -C Y -C Y -C Y -A Y -B Y -B Y -B X -A Z -A Z -B Z -C Y -B Y -C Y -B X -A Z -C Z -B X -C Y -C Y -C X -C Y -C Y -C Z -C Y -B Y -B X -B Y -B Y -B X -A Z -C Y -B X -B X -B Y -B Y -B X -C X -C Y -C X -B X -B Y -B Y -A Y -C Y -B X -A Y -C Y -B X -B X -C Y -C Y -C X -B X -C Z -B X -C Y -A Y -C X -B X -C Y -B X -C X -A Y -A Y -A Y -C Y -B X -B X -B X -B Y -A X -C X -B X -C Y -B X -B X -A Y -B X -B X -B X -B X -B Y -B Y -B X -C X -A Z -C Y -C Y -C Y -B Y -C Y -C Y -B X -B Y -C Y -A Z -C Y -B X -B X -C Y -A Z -C Y -A Y -B X -C Y -B X -B Y -C Y -C X -B X -B Y -B X -B X -B X -B X -C Y -C Y -A Y -C Y -B Z -A Y -C Y -C Y -B X -A Y -C Z -C Y -B Y -C Y -C Y -B Y -C Y -B X -B X -C Y -B X -B X -B Y -B X -B X -B Y -C X -C Y -B X -A Y -C X -B X -B X -A X -B Y -C Y -C Y -B X -A X -A Y -B Y -B Y -C Z -B Y -B Y -B X -B X -C Y -A Y -C Y -A Y -B X -C X -B Y -C Y -B Y -B Y -C Y -A Y -C Y -B X -A X -C Y -B X -B X -B X -C Y -C Y -C Y -A Z -A Z -C Y -A Y -C Y -B X -B X -C X -B Y -A Y -A Z -A Y -C X -B X -C Y -B Y -B X -A Y -C Y -B X -A Y -B Y -C Y -B Y -B X -C Y -C Y -B Y -B X -C Y -B Y -C X -C Y -B X -B X -C Y -C Y -A Y -C X -B X -B X -B Y -A Y -B Y -B X -C Y -C Y -C X -B Y -C Z -C Y -C Y -B Y -C Z -B X -C Y -A Y -A Z -B Y -B X -C X -A Y -B X -C Z -B Y -C Y -B X -B X -B Y -C Y -B Y -C Y -C X -B Y -B X -C Z -B X -B X -B X -B X -A X -B X -C Y -C X -B X -A Y -C Y -A Z -C Y -C Y -C Y -A Z -B X -C Y -A Y -B X -B X -C Y -A Z -B X -C Y -A Y -A Z -C Y -A Y -B Y -B Y -C Y -C Y -C Y -B X -C Y -C Y -B X -B X -A Z -C X -C Z -A Z -C Y -B X -B Y -B X -B Y -C Y -B X -B X -B X -B X -B X -B Y -C X -C Y -C Y -B X -B X -B X -C Y -C Y -C Y -C Y -A X -B X -B X -A X -B Y -C Y -C Y -B Z -C Y -C Y -B X -B X -C X -A Y -B Y -B X -C X -B X -B Y -B X -C Y -C Y -C Y -B X -A Z -B X -A X -B X -A Y -C Y -A Y -C X -B X -B Y -B X -B X -C Y -A Y -B Y -A Y -C Y -B Y -B Y -B X -A Z -B X -B X -B X -C Z -B X -C Y -B X -B X -C Y -C X -B X -C Y -B X -C Y -C Z -A Y -B X -C Y -B Y -C Y -C Y -C Y -B Y -B Y -C Y -A Y -A Z -C Y -C Y -C Y -B X -A Y -C Z -B Y -C Y -C Y -B X -B Y -A X -B X -B Y -B X -C Y -B X -B Y -B X -A Z -A Z -B X -B X -B X -C Y -B X -C Y -A Y -C X -C Y -A Z -A Y -B X -B X -C Y -B X -B Y -A Y -B X -B X -C X -C X -B X -B Y -C Y -B X -B X -C Y -B X -B X -C X -B Y -A Y -C Y -B X -B X -B Y -C Y -A Z -B X -C Y -C Y -B X -B X -A Y -C Y -C Y -B X -A Y -B X -B X -A Z -C Y -B X -B X -C Y -B Y -C Y -B X -A Z -C Y -C Y -B Z -A Z -B Z -B X -A Z -C Y -B Y -C X -A Z -C Y -A Y -B X -C Y -C Y -B X -C Y -B X -C Y -C Y -B X -B X -C Y -B Y -A Y -B X -C Y -A Y -C Y -C Y -B X -C Y -B X -B X -B X -C Y -B X -B Y -B Y -A Y -A Y -A Z -B X -C Y -B Y -B X -B X -C Y -B Y -C Y -C Y -A Z -C Y -C Y -B Y -A Y -B Y -C X -B X -B X -B X -B X -A Z -B X -C X -A Y -C Y -B X -C Z -C Y -B X -C Y -B X -B X -A Y -C Z -B X -B X -C Y -A Z -A Y -C X -B Y -B Y -B X -A Y -C Y -B X -B Y -B Y -C Y -C X -A Z -B Y -C Y -B X -C X -C X -B Y -A Z -B Z -B X -B X -A Z -B Y -C Y -C Y -B X -C Z -C Y -C Y -A Y -C Y -B Y -B X -C Y -C Y -A Y -A Z -A Z -B X -C Y -B X -B X -B X -B X -A Z -B X -A X -C Z -C Y -B Y -A Y -B X -B Y -A Z -C Y -C Y -B X -C Y -C Y -C X -C Y -B X -B X -B X -C Y -B Y -B Y -C Y -C Y -B X -B X -B X -B X -A Y -C Y -B X -C X -A Z -C Y -B X -B Y -B Y -B Y -C Z -B Y -A Y -C X -A Z -C Y -C Y -C X -A Y -B Y -A Y -B X -C X -B X -C Y -B Y -B X -C Y -C Y -B X -B Y -B X -A Z -A Z -A Y -B X -B X -B Y -C X -A X -B X -B Y -C X -C Z -C Y -A Y -C Y -B X -A Z -B X -B X -A Z -C X -A Z -C Y -C Y -A Z -A Y -B X -C Z -B X -A Y -B Y -A X -B Y -B Y -B Y -B X -C Y -B X -C Y -C X -C X -A Z -C Y -B X -A Y -C Y -A Y -B X -C Y -C Y -B X -C Y -B X -C Y -A Y -A Z -C Y -B Z -C Y -C Y -B X -C Y -C Y -C Y -B X -A Y -A Z -B X -A X -B Z -C Y -B Z -C Y -B Y -B Y -C Y -C Y -B X -C Y -A Z -B Y -C Y -C X -A Y -A Y -B X -B X -B X -A Y -C Y -A Y -B Y -C Y -A Y -A Y -C Y -B X -C Y -B X -C Y -B X -B X -C Y -C X -A Z -C Y -C Y -A Z -C Y -A Y -A X -A Z -B Y -C Y -B X -C Y -C Y -C Y -C Y -A X -B X -C Y -B Y -B X -B X -A Y -A Z -C X -C Y -C Z -C Y -B Y -C Y -B X -B X -A X -B X -B X -A Y -C Y -B X -A Z -C Y -C Y -A Z -C Y -C X -B X -B X -B X -C Y -B Z -C Y -B X -C X -B X -C Y -C Y -A Y -C Y -C Y -C Z -A Z -C Y -C Y -C Y -B X -C X -B Z -C Y -B X -B X -B X -C Y -B Y -B X -B Y -A Y -B Y -B X -C X -C Y -A Z -B Y -C Y -B X -C Y -C X -B X -B X -A Y -B Y -B X -A Y -B X -C Y -C Y -C Y -A Z -A X -C Y -C Y -C Y -A Z -B X -B X -A Y -C Y -C X -C Y -B X -B X -A Y -A Y -B X -B X -C Y -B X -B X -A Y -A Z -B X -A Y -C Y -C Y -C Y -B X -B X -C X -A Y -C Y -B Y -A Y -C Z -B X -C Y -B Y -B X -C Z -A Y -C X -C Y -C Y -B X -C X -B X -A Y -C X -B Y -A Y -A Y -B X -C Y -B X -C Y -B Y -C Y -C Y -B X -B X -B X -B X -B X -C Y -A Y -C Y -A Z -A Y -B X -C X -B X -B Y -C Z -B Y -B X -C Y -A X -C X -C Y -B X -C X -A Y -C Z -C Y -B X -A Z -A Y -C Y -C Y -C Y -C X -B X -A Z -B Y -C Y -C Y -B X -B Y -C X -C Y -B X -B X -B Z -C Y -B X -B X -B Z -B X -C Y -C Y -C Y -C Z -C Y -B Y -A Z -A Z -B X -B Y -A Z -B Y -B X -B X -B Y -C X -C Y -A Y -C X -C X -B Y -A X -B Y -B X -C Y -C Y -B X -C Y -A X -C X -C X -B X -B X -C X -B Y -B Y -A Y -B X -B X -B X -C X -B X -A Y -C Y -B X -A Z -B Y -A Y -B X -B X -C Y -B Y -A Z -B X -B X -C Y -A Y -A Y -A Z -C Y -A Y -B X -A Y -B X -C Y -C Y -C Y -B X -B Y -B X -C Y -A Z -A Z -B Y -B Y -C X -C X -C Y -B X -C Y -B X -C Y -C Y -A Y -A Y -A Z -A Y -B X -B X -B X -B Y -C Y -C X -C Y -B X -B Y -C Y -C X -C Y -B X -A Z -C Y -C Y -B X -A Z -B X -A Z -A X -A X -B X -B X -C Y -C X -B Y -C Z -B X -C Y -A Z -B X -A Y -C X -B Y -C Y -B Y -C X -C Y -C Y -B X -B Y -C Y -C X -C Y -B Y -B Y -B X -B Z -C Y -C Y -B X -C Y -C Y -C Y -B Y -B Y -C Y -C Y -C X -B Z -C Y -C Y -C Y -B Y -C X -B Y -A Y -B X -B Y -A Z -C Y -B X -A X -C X -B X -B X -A Y -A Y -A Y -A Y -B X -B X -A Z -A Z -C Y -B X -A Z -B X -B X -C Y -A Y -B X -B X -A Y -B X -A X -C Y -B X -B X -A Z -C Y -B Y -C Y -A Z -B X -C X -B Y -C X -B X -B X -C X -A Y -B X -B Y -B X -C Y -B X -A Y -B X -C Y -B Z -B X -A Z -B X -A Z -A Y -B Z -B Y -B X -B X -B Z -B X -C Y -B Y -A Z -C Y -B X -B Y -A Y -C Y -C Y -B X -B X -C Y -B X -C Y -B X -B X -A Y -C Y -A Y -A Y -A Y -C Y -C Y -A Z -B X -A Y -C Y -B X -C X -B Y -C Z -C Y -B X -C Y -C Y -B X -B X -B X -C X -C X -B X -C X -C X -C X -A Z -B Y -B X -B X -B X -C Y -A Z -B Y -B X -B X -B Y -A Z -B X -C Y -C Y -A Z -C Y -B X -A Y -C Y -B X \ No newline at end of file diff --git a/src/prob2/mod.rs b/src/prob2/mod.rs index 10513e5..d11278c 100644 --- a/src/prob2/mod.rs +++ b/src/prob2/mod.rs @@ -1,16 +1,10 @@ -#[derive(PartialEq, Eq)] +#[repr(u8)] pub enum Play { Rock, Paper, Scissors, } -enum ResultPlay { - Win, - Draw, - Loss, -} - impl Into for Play { fn into(self) -> char { match self { @@ -31,27 +25,12 @@ impl Into for Play { } } -impl From 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 for ResultPlay { - fn into(self) -> i32 { - match self { - ResultPlay::Win => 6, - ResultPlay::Draw => 3, - ResultPlay::Loss => 0, - } +pub fn translate(letter: char) -> Option { + match letter { + 'A' => Some(Play::Rock), + 'B' => Some(Play::Paper), + 'C' => Some(Play::Scissors), + _ => None, } }