README.md

# Poker Validator

Elixir validator for Texas Holdem hands, with a given list of cards it returns the best possible hand with its score

## Getting started

    $ git clone https://github.com/dimun/poker_validator.git
    $ cd poker_validator
    $ mix compile
    $ iex -S mix

## Examples
  The poker validator `hand` method receives a list of Cards
  The suit for a card must be 1(spade), 2(diamond), 3(club), 4(heart).
  A value must be 2, 3, 4, 5, 6, 7, 8, 9, 10, 11(J), 12(Q), 13(K), 14(A).

  This is a straight flush of spades
  ```Elixir
    iex>alias PokerValidator.Card
    iex> cards = [
      %Card{suit: 1 value: 10},
      %Card{suit: 1, value: 11},
      %Card{suit: 1, value: 12},
      %Card{suit: 1, value: 13},
      %Card{suit: 3, value: 6},
      %Card{suit: 4, value: 8},
      %Card{suit: 1, value: 14}
    ]
    ...
    iex> PokerValidator.hand(cards)
    %PokerValidator.Hand{cards: [%PokerValidator.Card{suit: 1, value: 10},
     %PokerValidator.Card{suit: 1, value: 11},
     %PokerValidator.Card{suit: 1, value: 12},
     %PokerValidator.Card{suit: 1, value: 13},
     %PokerValidator.Card{suit: 1, value: 14}],
     highs: [14], score: 10000000, suit: 1, value: :royal_straight_flush}
  ```

## LICENSE

poker_validator is licensed under MIT License