smaatcoda / poker-rankr
PokerRankr 是一个扑克牌型排名引擎。
dev-master / 1.0.x-dev
2021-05-30 18:19 UTC
Requires
- php: >=7.2
- illuminate/config: ^6.6
- php-ds/php-ds: ^1.2
Requires (Dev)
- mockery/mockery: ^1.3
- orchestra/testbench: ^4.4
- phpunit/phpunit: ^8.4
- roave/security-advisories: dev-master
This package is not auto-updated.
Last update: 2024-09-29 19:57:26 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,您就可以编写自己的排名处理器集。