12个版本

0.4.0 2022年6月24日
0.2.0 2017年5月18日
0.1.9 2016年1月16日
0.1.4 2015年12月27日

#18 in #cards

36 个月下载量

MIT 许可证

55KB
1.5K SLoC

libcoinche

Build Status MIT licensed

Rust库,用于模拟Coinche纸牌游戏。

文档

使用时,将 libcoinche 添加到您的Cargo依赖项

[dependencies]
libcoinche = "0.1.9"

查看 coinched 了解使用示例。


lib.rs:

模拟Coinche纸牌游戏(一种法国纸牌游戏)。

查看 coinched 了解使用示例。

以下是一个简单的示例

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());
    // ...
}

依赖项

~0.6–1.3MB
~28K SLoC