十六号工作室 / poker
一个基于PHP的扑克库,包括手牌强度计算、德州扑克游戏逻辑等。
Requires
- php: >=5.3.0
- illuminate/support: *
Requires (Dev)
- phpunit/phpunit: ~4.1
This package is auto-updated.
Last update: 2024-08-28 01:12:58 UTC
README
一个基于PHP的扑克库,能够进行手牌计算、德州扑克游戏逻辑等。
牌和牌组
扑克库保留了相对简化的类结构,为你提供了一个简单的卡片类,你可以用遵循其接口的任何卡片实现来替换它,允许你实现自己的花色甚至自定义描述翻译。
$cards = [ new Card('Club', 1), new Card('Spade', 2), new Card('Club', 3), new Card('Heart', 4), new Card('Diamond', 5), ]; $deck = new Deck($cards);
牌组是一组卡片,提供洗牌、取牌、卡片计数等函数以及其他在构建扑克游戏时可能需要的任何其他函数。
可以使用静态的newStandardDeck方法实例化标准的52张牌组。
$52CardDeck = Deck::newStandardDeck();
手牌和手牌强度
手牌由特定数量的卡片组成,其中数量限制取决于游戏类型。默认的手牌类设置限制为2张卡片,因为这是标准德州扑克的手牌数量。
$hand = new Hand([$deck->takeCard(), $deck->takeCard()]);
如果制作了一个无效的手牌(即向手牌中添加了超过2张卡片),将抛出 Sixteenstudio\Poker\InvalidHandException。
手牌不应与手牌强度混淆,手牌强度是根据玩家的手牌和任何公共牌计算的最强手牌。此类目前仍在开发中。
HandStrength实例将很有用,因为它们可以使用提供的任何可玩卡片计算最强手牌,只需少量方法调用。
它还允许比较其他HandStrength类,这允许游戏类在任何特定情况下计算获胜玩家。
游戏
目前正在开发的游戏类是一个抽象类,将为基于卡片的游戏(不仅限于扑克!)提供框架,可以重复用于任何数量的游戏。
它将包含玩家信息、游戏状态以及运行游戏服务器所需的后端游戏逻辑。
基于Laravel 4.2的应用程序,使用Socketier、MongoDB和这个扑克库将很快可用,这将是一个使用PHP实现在线扑克室解决方案的示例。
示例
环境应用程序将在sixteenstudio/poker-environment存储库中找到。这提供了一个基于Laravel 4.2的vagrant环境,可以完全测试扑克库和德州扑克功能。