Project

ruby-poker

0.09
No commit activity in last 3 years
No release in over 3 years
Ruby library for comparing poker hands and determining the winner.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project Readme

¶ ↑

Author

Rob Olson

Email
first name
at

thinkingdigitally.com

GitHub

github.com/robolson/ruby-poker

Description¶ ↑

Ruby-Poker handles the logic for getting the rank of a poker hand. It can also be used to compare two or more hands to determine which hand has the highest poker value.

Card representations can be passed to the PokerHand constructor as a string or an array. Face cards (cards ten, jack, queen, king, and ace) are created using their letter representation (T, J, Q, K, A).

Install¶ ↑

gem install ruby-poker

Example¶ ↑

require 'rubygems'
require 'ruby-poker'

hand1 = PokerHand.new("8H 9C TC JD QH")
hand2 = PokerHand.new(["3D", "3C", "3S", "KD", "AH"])
puts hand1                => 8h 9c Tc Jd Qh (Straight)
puts hand1.just_cards     => 8h 9c Tc Jd Qh
puts hand1.rank           => Straight
puts hand2                => 3d 3c 3s Kd Ah (Three of a kind)
puts hand2.rank           => Three of a kind
puts hand1 > hand2        => true

Duplicates¶ ↑

By default ruby-poker will not raise an exception if you add the same card to a hand twice. You can tell ruby-poker to not allow duplicates by doing the following

PokerHand.allow_duplicates = false

Place that line near the beginning of your program. The change is program wide so once allow_duplicates is set to false, all poker hands will raise an exception if a duplicate card is added to the hand.

Compatibility¶ ↑

Ruby-Poker is compatible with Ruby 1.8, Ruby 1.9, and Ruby 2.X.

RDoc¶ ↑

View the generated documentation for ruby-poker on rdoc.info.

Running test suite¶ ↑

bundle exec rake

There is also a more compreshenive test, testing all permuations of poker hands, but it requires a large data file that must be downloaded first.

wget -P ./test/support/fixtures http://archive.ics.uci.edu/ml/machine-learning-databases/poker/poker-hand-testing.data
bundle exec rake test:integration

History¶ ↑

In the 0.2.0 release Patrick Hurley’s Texas Holdem code from www.rubyquiz.com/quiz24.html was merged into ruby-poker.

License¶ ↑

This is free software; you can redistribute it and/or modify it under the terms of the BSD license. See LICENSE for more details.