Metadata-Version: 2.1
Name: cardroom
Version: 0.0.1.dev1
Summary: A Django application for poker tournament and table management
Home-page: https://github.com/uoftcprg/cardroom
Author: University of Toronto Computer Poker Research Group
Author-email: uoftcprg@outlook.com
License: MIT
Project-URL: Documentation, https://cardroom.readthedocs.io/en/latest/
Project-URL: Source, https://github.com/uoftcprg/cardroom
Project-URL: Tracker, https://github.com/uoftcprg/cardroom/issues
Keywords: channels,django,game,game-development,holdem-poker,imperfect-information-game,poker,poker-engine,poker-game,poker-library,poker-strategies,python,texas-holdem
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Topic :: Education
Classifier: Topic :: Games/Entertainment
Classifier: Topic :: Games/Entertainment :: Board Games
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: channels[daphne]<5,>=4.0.0
Requires-Dist: Django<5,>=4.2.9
Requires-Dist: pokerkit~=0.4.5

========
Cardroom
========

A Django application for poker tournament and table management.

Features
--------

- Table management.
- Tournament management.

Installation
------------

.. code-block:: bash

   pip install cardroom

Usage
-----

Below shows a sample usage of Cardroom.

Add ``cardroom`` to the installed apps.

.. code-block:: python

   INSTALLED_APPS = [
       ...
       'cardroom',
       ...
   ]

.. code-block:: python

   from cardroom import Table
   from pokerkit import (
       BettingStructure,
       Deck,
       Opening,
       StandardHighHand,
       Street,
   )
   
   
   def callback(table, operation):
       pass
   
   
   table = Table(
       6,
       True,
       Deck.STANDARD,
       (StandardHighHand,),
       (
           Street(
               False,
               (False,) * 2,
               0,
               False,
               Opening.POSITION,
               1,
               None,
           ),
           Street(
               True,
               (),
               3,
               False,
               Opening.POSITION,
               1,
               None,
           ),
           Street(
               True,
               (),
               1,
               False,
               Opening.POSITION,
               1,
               None,
           ),
           Street(
               True,
               (),
               1,
               False,
               Opening.POSITION,
               1,
               None,
           ),
       ),
       BettingStructure.NO_LIMIT,
       True,
       None,
       (1, 2),
       0,
       range(80, 201),
       30,
       1,
       1,
       100,
       0.05,
       0.1,
       0.05,
       0.1,
       0.1,
       0.1,
       10,
       10,
       10,
       10,
       3,
       0.5,
       0.5,
       0.5,
       1,
       callback,
   )
   
   table.run()

Testing and Validation
----------------------

Cardroom has extensive test coverage, passes mypy static type checking with
strict parameter, and has been validated through extensive use in real-life
scenarios.

Contributing
------------

Contributions are welcome! Please read our Contributing Guide for more
information.

License
-------

Cardroom is distributed under the MIT license.
