A fully configurable poker game engine
The purpose of this library is to able to handle all logic behind running a poker game.
The goal is to be independently configurable in terms of ranking system, betting structure and table size.
What would a library be without some code examples.
With variants like Hold'Em or Stud it is usefull to find the best hand combination out of a list of cards.
const Poker = require("six-of-spades");
let poker = new Poker();
let hand = poker.findBestHand(["5c", "Td", "4c", "6c", "Js", "7c", "9h", "Qs", "8c", "3c", "2d"]);
console.log(hand.getShortName());
//=> "Straight flush"
console.log(hand.getLongName());
//=> "Straight flush, Eight high"
Here is an example using Ace-to-five low instead of the traditional ranking.
Allowed values are Poker.RANKING_TRADITIONAL
, Poker.RANKING_ACE_TO_FIVE
, and Poker.RANKING_DEUCE_TO_SEVEN
.
const Poker = require("six-of-spades");
let poker = new Poker({
ranking: Poker.RANKING_ACE_TO_FIVE
});
let hand = poker.convertHand(["6c", "2d", "3h", "4s", "5d"]);
console.log(hand.getShortName());
//=> "Six low"
console.log(hand.getLongName());
//=> "6,5,4,3,2"