spades 1.0.0

A popular four person card game implemented in Rust.
Documentation

This crate provides an implementation of the four person card game, spades.

Example usage

extern crate rand;
extern crate uuid;
extern crate spades;

use std::{io};
use spades::{Game, GameTransition, State};
use rand::{thread_rng, Rng};

let mut g = Game::new(uuid::Uuid::new_v4(), 
   [uuid::Uuid::new_v4(), 
    uuid::Uuid::new_v4(), 
    uuid::Uuid::new_v4(), 
    uuid::Uuid::new_v4()], 
    500);


g.play(GameTransition::Start);

while *g.get_state() != State::Completed {
    let mut stdin = io::stdin();
    let input = &mut String::new();
    let mut rng = thread_rng();
    if let State::Trick(_playerindex) = *g.get_state() {
        assert!(g.get_current_hand().is_ok());
        let hand = g.get_current_hand().ok().unwrap().clone();

        let random_card = rng.choose(hand.as_slice()).unwrap();
        
        g.play(GameTransition::Card(random_card.clone()));
    } else {
        g.play(GameTransition::Bet(3));
    }
}
assert_eq!(*g.get_state(), State::Completed);