#cards #state #card-game #machine #state-machine

spades

用Rust实现的流行的四人纸牌游戏

4个版本 (1个稳定版)

使用旧的Rust 2015

1.0.0 2018年7月18日
0.1.2 2018年7月9日
0.1.1 2018年7月9日
0.1.0 2018年7月9日

#1476 in 游戏开发

MIT 许可证

37KB
822

Spades · MIT 许可证 · 构建状态

Spades是一种四人 赢墩 纸牌游戏。有关Spades的完整规则,请点击这里

入门

将此行添加到您的Cargo.toml

[dependencies]
spades = "1.0"

竞标功能

目前允许通过下注0来竞标零(奖金是+100分,罚款是-100分),但还不支持盲注。

如何使用

extern crate spades;
extern crate uuid;

use spades::{Game, GameTransition};
use spades::result::{TransitionSuccess, TransitionError, GetError};

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);

//Each round starts with a round of betting

assert_eq!(g.play(GameTransition::Bet(3)), TransitionSuccess::Bet);
g.play(GameTransition::Bet(4));
g.play(GameTransition::Bet(4));
g.play(GameTransition::Bet(2));

//The game is now in the card playing stage
assert_eq!(g.play(GameTransition::Bet(3)), TransitionFailure::Bet);


let hand = g.get_hand(g.current_player).clone();

let valid_card = g.last().unwrap().clone();
g.play(GameTransition::Card(valid_card));

//...

文档

有关包的完整描述,请查看docs.rs 页面

贡献

如果您想看到添加的功能,请随时提出问题或提交拉取请求!

依赖关系

~1MB
~11K SLoC