Crate libcoinche [−] [src]
Models a game of coinche (a french card game).
See coinched for an example of usage.
Here is a simple example:
extern crate libcoinche; use libcoinche::{bid,cards,pos}; fn main() { // The first player let first = pos::PlayerPos::P0; // Start the first phase with an auction let mut auction = bid::Auction::new(first); // Check their cards let hands = auction.hands(); // Players bid or pass auction.bid(pos::PlayerPos::P0, cards::Suit::Heart, bid::Target::Contract80).unwrap(); auction.pass(pos::PlayerPos::P1).unwrap(); auction.pass(pos::PlayerPos::P2).unwrap(); // The result is `Over` when the auction is ready to complete match auction.pass(pos::PlayerPos::P3) { Ok(bid::AuctionState::Over) => (), _ => panic!("Should not happen"), }; // Complete the auction to enter the second phase let mut game = auction.complete().unwrap(); // Play some cards game.play_card(pos::PlayerPos::P0, hands[0].get_card()); // ... }
Modules
bid |
Auctions and bidding during the first phase of the game. |
cards |
This module represents a basic, rule-agnostic 32-cards system. |
game |
Module for the card game, after auctions are complete. |
points |
Manage score and scores |
pos |
Player position in the table |
trick |
This module implements a trick in a game of coinchet vec |
Functions
deal_hands |
Quick method to get cards for 4 players. |
deal_seeded_hands |
Deal cards for 4 players deterministically. |