simple-hacker / phpoker
PHP 库包,用于无限制德州扑克
0.1.0
2020-11-26 13:13 UTC
Requires (Dev)
- phpunit/phpunit: >9.4
This package is auto-updated.
Last update: 2024-09-26 21:44:15 UTC
README
PHP 库包,用于无限制德州扑克。此包允许您在给定的牌中找到最好的德州扑克手牌。
安装
使用 composer 安装包
composer require simple-hacker/phpoker
使用
use simplehacker\PHPoker\Hands\TexasHoldemHand; $communityCards = '3hJdQdAdKd'; $holeCards = 'Td6s'; $hand = new TexasHoldemHand($communityCards, $holeCards);
牌作为短值的字符串,或短值的数组以及/或 Card 实例。
以下结果相同
$communityCards = '3hJdQdAdKd'; $communityCards = ['3h', 'Jd', 'Qd', 'Ad', 'Kd']; $communityCards = [new Card('3h'), new Card('Jd'), new Card('Qd'), new Card('Ad'), new Card('Kd')]; $communityCards = [new Card('3h'), 'Jd', new Card('Qd'), 'Ad', new Card('Kd')]; // A mix of both
一旦手牌实例化,您就可以获取手牌描述以及用于与其他手牌比较的手牌数值。
use simplehacker\PHPoker\Hands\TexasHoldemHand; $communityCards = '3hJdQdAdKd'; $holeCards = 'Td6s'; $hand = new TexasHoldemHand($communityCards, $holeCards); // Royal Flush, Ace to Ten of Diamonds $hand->getDescription(); // AdKdQdJdTd $hand->getShortDescription(); // 10 $hand->getHandRank(); // const ROYAL_FLUSH_RANK = 10; // const STRAIGHT_FLUSH_RANK = 9; // const FOUR_OF_A_KIND_RANK = 8; // const FULL_HOUSE_RANK = 7; // const FLUSH_RANK = 6; // const STRAIGHT_RANK = 5; // const THREE_OF_A_KIND_RANK = 4; // const TWO_PAIR_RANK = 3; // const ONE_PAIR_RANK = 2; // const HIGH_CARD_RANK = 1; // 11459770 $hand->getHandValue(); // Hand value is generated from converting Hand Rank and all Card values to a binary string, and converting back to base 10. This ensures the best hand will always be the highest number
牌
牌可以通过多种方式实例化。以下所有结果都是黑桃A
// As a short value where the first character is card value 23456789TJQKA, // and the second character is card suit as shcd new Card('As'); // Arguments for both value and suit new Card('Ace', 'Spades'); new Card('A', 's'); // As numerical values // Jack = 11, Queen = 12, King = 13, Ace = 1 or 14 // Clubs = 1, Diamonds = 2, Hearts = 3, Spades = 4 new Card(14, 4); // Or any combination of the above new Card('Ace', 's'); new Card(1, 'spades');
对于无效的值或花色,将抛出 InvalidCardException
即将发布的版本
- 比较 TexasHoldemHands 以确定获胜者
- 其他扑克变体,如奥马哈、短牌、拉兹、斯图德等
免责声明
我不对由于在此包中出现的任何错误导致的任何赢钱或亏损负责。这是作为一个学习练习创建的,所以请自行承担风险使用此包。
贡献
欢迎拉取请求。对于重大更改,请首先提交问题以讨论您想要更改的内容。
请确保根据需要更新测试。