use std::fmt::Display;
#[derive(Debug, Clone, PartialEq)]
pub enum Symbols {
Circle,
Hashtag,
Dollar,
AtSign,
Seven,
Astrisk,
AndSign,
Jackpot,
Wild,
}
impl Display for Symbols {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let symbol = match self {
Symbols::Circle => "O",
Symbols::Hashtag => "#",
Symbols::Dollar => "$",
Symbols::AtSign => "@",
Symbols::Seven => "7",
Symbols::Astrisk => "*",
Symbols::AndSign => "&",
Symbols::Jackpot => "!",
Symbols::Wild => "X",
};
write!(f, "{symbol}")
}
}
impl Symbols {
pub fn get_value(&self) -> i32 {
match self {
Symbols::Circle | Symbols::Hashtag | Symbols::Dollar | Symbols::AtSign => 1,
Symbols::Seven | Symbols::Astrisk | Symbols::AndSign => 2,
Symbols::Jackpot => 7,
Symbols::Wild => 0,
}
}
}
pub const REEL_STRIPS: [[Symbols; 20]; 5] = [
[
Symbols::Circle,
Symbols::Circle,
Symbols::Hashtag,
Symbols::Hashtag,
Symbols::Hashtag,
Symbols::Dollar,
Symbols::Dollar,
Symbols::AtSign,
Symbols::AtSign,
Symbols::Seven,
Symbols::Seven,
Symbols::Seven,
Symbols::AndSign,
Symbols::AndSign,
Symbols::Astrisk,
Symbols::Astrisk,
Symbols::Astrisk,
Symbols::Jackpot,
Symbols::Wild,
Symbols::Wild,
],
[
Symbols::Circle,
Symbols::Circle,
Symbols::Hashtag,
Symbols::Hashtag,
Symbols::Hashtag,
Symbols::Dollar,
Symbols::Dollar,
Symbols::AtSign,
Symbols::AtSign,
Symbols::Seven,
Symbols::Seven,
Symbols::Seven,
Symbols::AndSign,
Symbols::AndSign,
Symbols::Astrisk,
Symbols::Astrisk,
Symbols::Astrisk,
Symbols::Jackpot,
Symbols::Wild,
Symbols::Wild,
],
[
Symbols::Circle,
Symbols::Circle,
Symbols::Hashtag,
Symbols::Hashtag,
Symbols::Hashtag,
Symbols::Dollar,
Symbols::Dollar,
Symbols::AtSign,
Symbols::AtSign,
Symbols::Seven,
Symbols::Seven,
Symbols::Seven,
Symbols::AndSign,
Symbols::AndSign,
Symbols::Astrisk,
Symbols::Astrisk,
Symbols::Astrisk,
Symbols::Jackpot,
Symbols::Wild,
Symbols::Wild,
],
[
Symbols::Circle,
Symbols::Circle,
Symbols::Hashtag,
Symbols::Hashtag,
Symbols::Hashtag,
Symbols::Dollar,
Symbols::Dollar,
Symbols::AtSign,
Symbols::AtSign,
Symbols::Seven,
Symbols::Seven,
Symbols::Seven,
Symbols::AndSign,
Symbols::AndSign,
Symbols::Astrisk,
Symbols::Astrisk,
Symbols::Astrisk,
Symbols::Jackpot,
Symbols::Wild,
Symbols::Wild,
],
[
Symbols::Circle,
Symbols::Circle,
Symbols::Hashtag,
Symbols::Hashtag,
Symbols::Hashtag,
Symbols::Dollar,
Symbols::Dollar,
Symbols::AtSign,
Symbols::AtSign,
Symbols::Seven,
Symbols::Seven,
Symbols::Seven,
Symbols::AndSign,
Symbols::AndSign,
Symbols::Astrisk,
Symbols::Astrisk,
Symbols::Astrisk,
Symbols::Jackpot,
Symbols::Wild,
Symbols::Wild,
],
];