A distributed implementation of Texas Hold’em, the most popular poker variant, designed to be played remotely. The system is built using multiple programming languages, with each component responsible for a specific part of the game logic.
The application is divided into four cooperating components:
- GUI (Python) — Desktop client for user interaction
- Core Game Server (Pharo) — Manages game flow and state
- Hand Recognition Service (Clojure) — Evaluates poker hands
- Best Hand Determiner (Haskell) — Determines winning hands
Located in the evaluator folder.
This service evaluates poker hands using Leiningen.
Steps to run:
-
Open a terminal.
-
Navigate to the evaluator directory:
cd evaluator -
Start the server:
lein ring server
Located in the determiner folder.
This service determines the strongest hand using Stack.
Steps to run:
-
Open a terminal.
-
Navigate to the determiner directory:
cd determiner -
Build and run the server:
stack build stack exec determiner
Located in the core folder.
This server coordinates gameplay.
Steps to run:
-
Launch Pharo.
-
Open Tools → Catalog Browser and install Tealight.
-
Open the Playground and execute:
repositorySpec := 'Mijura/TexasHoldemPoker:master/core'. Metacello new baseline: 'PokerCore'; repository: 'github://', repositorySpec; load. -
Load the package via the Monticello Browser.
-
In the Playground, start the server:
PCore new core.
Located in the client folder.
This is the user-facing desktop application.
Steps to run:
-
Open a terminal.
-
Navigate to the client directory:
cd client -
Launch the application:
python app.py
- Ensure all required dependencies for Python, Clojure, Haskell, and Pharo are installed before running the system.
- Each component should be running for full gameplay functionality.
Enjoy playing Texas Hold’em!
