Holdem - a modest poker library written in C

    Holdem is a modest poker library for use in poker programs.
    It provides a simple interface for:

    * card / string representation conversions
    * hand evaluation (find best hand given a set of cards)
    * hand comparisons
    * managing a "table" of players
    * etc.

    There is no direct dependency on any particular GUI or networking
    libraries.  You as the developer provide callback functions that are 
    invoked when Holdem needs information from a player, or when an important 
    game event occurs.  For instance, if you were developing a multiplayer poker 
    game for use over the Internet, you might send a network message to the 
    player who is next to act in a particular game when your code is called 
    back by Holdem.

Testing

    Holdem comes with a set of unit tests to ensure nothing breaks
    as features are added or changed.

Want to help?  Great!

    While Holdem itself is just a simple library, we are in fact
    looking to create several different user interfaces.  

    Some project ideas would be to create a GUI-based peer-to-peer poker game
    for small network of friends; e.g. your weekly poker game using SDL for
    graphics or some-such.

    Another idea would be to create a console UI using UTF-8 codepoints for the
    hearts symbol, etc.  

    Also, we are interested in bindings for Python and Ruby in the future.

Libraries in Holdem

    libpokerhands

        * Hand evaluation
        * Card / string representation conversions
        * Hand comparisons

    libpokergame

        * Managing a table of players
        * Callbacks to your code for events, prompts, messages, etc.
        * Managing a blinds schedule
        * Managing a tournament
        * etc.

Dependencies

    We use CMake for managing builds.

Suggestions?

    brian+holdem at brianhammond dot com

    

project page