Card Game ========= `card_game` is a library to implement card games. Mainly interesting for the `Game` trait and the `Session` type. Contains klondike as the reference implementation. ## Example ```rust use card_game::Rng; use card_game::card_game::{Session, Game}; use card_game::klondike::Klondike; // create game session let game = Klondike::new_random_default(); let mut session = Session::new(game); // is winnable let is_winnable = session.is_winnable().is_some(); // play game while let Some(instruction) = session.possible_instructions().next() { session.process_instruction(instruction); } // did win let is_win = session.is_win(); // print session history for (i, instruction) in session.history().iter().enumerate() { println!("move {i} = {instruction:?}"); } println!("is_winnable = {is_winnable}"); println!("is_win = {is_win}"); ``` #### License Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.