Hand Evaluator Bundle is a PHP 5.6+ library providing services to evaluate Texas hold'em Poker Hands.
A Symfony3 project
This bundle can be installed using composer by adding the following in the require
section of your composer.json
file:
"require": {
...
"bourdeau/handevaluator-bundle": "~0.1"
},
You must register the bundle in your kernel:
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = [
// ...
new Bourdeau\Bundle\HandEvaluatorBundle\BourdeauBundleHandEvaluatorBundle(),
];
// ...
}
There is no configuration for now.
<?php
// Path/To/Your/Controller
$winnerFinder = $this->container->get('bourdeau_bundle_hand_evaluator.winnerfinder');
$players = [
'John' => [QH, 2S, QS, JH, 5D, KH, 2H],
'David' => [9S, 2D, QS, JH, 5D, KH, 2H],
'Robert' => [QD, QC, QS, JH, 5D, KH, 2H],
]
$result = $handFinder->findAWinner($players);
// $result will output:
│ array(2) {
│ ["winners"]=>
│ array(1) {
│ ["Robert"]=>
│ array(4) {
│ ["hand_name"]=>
│ string(15) "Three of a kind"
│ ["hand_rank"]=>
│ int(4)
│ ["card_rank"]=>
│ int(11)
│ ["cards"]=>
│ array(3) {
│ [0]=>
│ string(2) "QD"
│ [1]=>
│ string(2) "QC"
│ [2]=>
│ string(2) "QS"
│ }
│ }
│ }
│ ["other_players"]=>
│ array(2) {
│ ["John"]=>
│ array(4) {
│ ["hand_name"]=>
│ string(9) "Two Pairs"
│ ["hand_rank"]=>
│ int(3)
│ ["card_rank"]=>
│ int(11)
│ ["cards"]=>
│ array(4) {
│ [0]=>
│ string(2) "QH"
│ [1]=>
│ string(2) "QS"
│ [2]=>
│ string(2) "2S"
│ [3]=>
│ string(2) "2H"
│ }
│ }
│ ["David"]=>
│ array(4) {
│ ["hand_name"]=>
│ string(8) "One Pair"
│ ["hand_rank"]=>
│ int(2)
│ ["card_rank"]=>
│ int(1)
│ ["cards"]=>
│ array(2) {
│ [0]=>
│ string(2) "2D"
│ [1]=>
│ string(2) "2H"
│ }
│ }
│ }
│ }