mod card; mod grid; use crate::card::*; use crate::card::cardlist::*; use crate::card::card::Card; use crate::grid::*; use rand::Rng; fn rand_u8() -> u8 { let mut rng = rand::thread_rng(); rng.gen() } fn special_000() { println!("Hello!"); } #[allow(unused_variables)] fn main() { let mut card = Card::new(player::PlayerId::PLAYER_1); println!("{:?}", card); card.n ^= 5; println!("{:?}", card); card.n ^= 3; println!("{:?}", card); card.n = 254; card.effect = Some(effect::CardEffect { name: "Say Hello", description: "Tells the Opponent 'Hello'", when: card::effect::CardEffectStates::default(), handle: &special_000, }); println!("{:?}", card); card.randomize(); println!("{:?}", card); if let Some(effect) = card.effect { (effect.handle)(); } let mut grid = Grid::<4>::default(); println!("{:?}", grid); grid.field[0][1] = Some(card); grid.field[0][2] = Some(CARD_0000); println!("{:?}", grid); if let Some(gcard) = grid.field[0][2] { if let Some(effect) = gcard.effect { (effect.handle)(); } } grid.randomize(); println!("{:?}", grid); }