smaatcoda/poker-rankr

PokerRankr 是一个扑克牌型排名引擎。

dev-master / 1.0.x-dev 2021-05-30 18:19 UTC

README

PokerRankr - 一个扑克牌型排名引擎。

可以通过以下命令安装此包:

composer require smaatcoda/poker-rankr

在 Laravel 应用程序中安装了吗?

如果安装在一个基于 Laravel 的应用程序中,可以自由使用 Laravel 的服务容器和 Facades。要做到这一点,请将以下内容添加到您的 config/app.php 文件中

  • PokerRankrServiceProvider
    \SmaatCoda\PokerRankr\PokerRankrServiceProvider::class
  • PokerRankr Facade
    'PokerRankr' => SmaatCoda\PokerRankr\Facades\PokerRankr::class

完成此操作后,运行 php artisan vendor:publish --tag=poker-rankr-config 将 PokerRankr 配置文件复制到您的项目。

现在,您可以使用 Laravel 的服务容器实例化 PokerRankr,如下所示

...

$ranker = app()->make(PokerRankr::class);
$ranker->evaluateHand($hand);

或这样

public function index(PokerRankr $ranker)
{
    ...

    $ranker->evaluateHand($hand);
}

您还可以使用 PokerRankr Facade

...

PokerRankr::evaluateHand($hand);

在纯 PHP 应用程序中安装了吗?

如果安装在一个非 Laravel 应用程序中,您可以通过首先实例化 PokerRankr 配置并将一组处理器传递给 PokerRankr 构造函数来实例化 PokerRankr

...

$config = new Config();
$ranker = new PokerRankr($config->get('texas-holdem'));

$ranker->evaluateHand($hand);

用法

使用 PokerRankr 评估扑克牌型的排名或对扑克牌型集合进行排序。PokerCard 实体提供了一套常量,用于每个常见的牌面等级和花色,以正确实例化 PokerCard 对象。

$hand = new PokerHand();
$hand->add(new PokerCard(PokerCard::RANK_ACE, PokerCard::SUIT_DIAMONDS));
$hand->add(new PokerCard(PokerCard::RANK_KING, PokerCard::SUIT_DIAMONDS));
$hand->add(new PokerCard(PokerCard::RANK_JACK, PokerCard::SUIT_DIAMONDS));
$hand->add(new PokerCard(PokerCard::RANK_QUEEN, PokerCard::SUIT_DIAMONDS));
$hand->add(new PokerCard(PokerCard::RANK_TEN, PokerCard::SUIT_DIAMONDS));

在创建了一组扑克牌型后,您可以使用 PokerRankr 对集合中的牌型进行排序,这样之后集合中的第一手牌将是获胜手牌。

...

$handsCollection = new PokerHandCollection($hand2, $hand1);

$ranker->sortHands($handsCollection);

$winnerHand = $handsCollection->first();

自定义

只要实现 RankingHandlerInterface,您就可以编写自己的排名处理器集。