simple-hacker/phpoker

PHP 库包,用于无限制德州扑克

0.1.0 2020-11-26 13:13 UTC

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 以确定获胜者
  • 其他扑克变体,如奥马哈、短牌、拉兹、斯图德等

免责声明

我不对由于在此包中出现的任何错误导致的任何赢钱或亏损负责。这是作为一个学习练习创建的,所以请自行承担风险使用此包。

贡献

欢迎拉取请求。对于重大更改,请首先提交问题以讨论您想要更改的内容。

请确保根据需要更新测试。

许可证

MIT