#card-game #scout #player #sets #show #flush #inc

bin+lib scout_game

Rust 实现 Scout 卡牌游戏,最初由 Kei Kanjino 设计,由 Oink Games inc 出版。

2 个版本

0.1.1 2023 年 11 月 24 日
0.1.0 2023 年 11 月 20 日

#732游戏

MIT 许可证

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 操作有参数 startstop,它们是要显示的牌组的上下限。可以通过重复,例如 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