2 个版本
0.1.1 | 2023 年 11 月 24 日 |
---|---|
0.1.0 | 2023 年 11 月 20 日 |
#732 在 游戏 中
38KB
739 行
scout-game
Scout 卡牌游戏的 Rust 实现,最初由 Kei Kanjino 设计并由 Oink Games inc 出版。
Scout
本说明文件不作为游戏手册,将假设您熟悉游戏规则。
Scout 是一款 3-5 名玩家参与的花牌游戏。在 Scout 中,玩家通过创建和出牌组得分。这些组可以是清一色(0,0,0)或顺子(0,1,2)。
Scout 的核心机制是玩家的手牌 不能重新排序。因此,为了创建强大的牌组,玩家必须向他们的手牌(Scout)中添加必要的牌,或者移除障碍(Show)。
本模块使用从 0 到 9 的牌值,而不是原始的 1 到 10。
命令行界面
从命令行运行将启动一场对抗 3 个计算机玩家的游戏。当提示操作时,输入以下操作之一:
scout[left] [flip] [index]
show[start] [stop]
scoutshow[left] [flip] [index]
quit
所有参数应该是数字(1 代表 true
)。
scout 操作有参数:left
指定要搜索的活跃牌组的哪一侧,flip
如果要翻转卡片,以及 index
插入卡片的位置。
show 操作有参数 start
和 stop
,它们是要显示的牌组的上下限。可以通过重复,例如 show 2 2
来出一张牌。
最后一个操作 scoutshow 是上述操作的简单组合。您应首先输入搜索步骤的参数,然后您将看到一个新视图并可以输入一个显示操作。
输入 quit 将使游戏停止。在退出前,这将打印 GameState
的调试视图。
库
将库导入脚本的主要原因是实现自定义 Strategy
函数,以对抗它们或测试它们与内置计算机玩家。
要创建游戏实例,请将策略函数向量传递给 scout::run
。您可以使用 get_player_action
策略添加人类玩家。策略的数量决定了玩家的数量,必须在3到5之间。
let strategies: Vec<scout::Strategy> = vec![
scout::get_player_action,
scout::strategy_rush,
scout::strategy_rush,
scout::strategy_rush,
];
match scout::run(&strategies) {
Ok(game_result) => {
println!("Game over! Scores: {:?}", game_result.scores);
}
Err(game) => {
println!("Game halted!: {:?}", game);
process::exit(1);
}
}
依赖项
~550–780KB
~10K SLoC