bourdeau/handevaluator-bundle

Poker hand evaluator bundle for Symfony3

0.1.1 2016-05-20 13:59 UTC

This package is not auto-updated.

Last update: 2024-04-27 17:26:03 UTC


README

Build Status Dependency Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads Latest Unstable Version License

Poker Hand Evaluator Bundle

About Poker Hand Evaluator Bundle

Hand Evaluator Bundle is a PHP 5.6+ library providing services to evaluate Texas hold'em Poker Hands.

Installation

Prerequisites

A Symfony3 project

With composer

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"
    },

Register the bundle

You must register the bundle in your kernel:

<?php

// app/AppKernel.php

public function registerBundles()
{
    $bundles = [
        // ...
        new Bourdeau\Bundle\HandEvaluatorBundle\BourdeauBundleHandEvaluatorBundle(),
    ];
    // ...
}

Configuration

There is no configuration for now.

Usage Example

<?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"
│       }
│     }
│   }
│ }