Skip to content

Mijura/holdem-poker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Texas Hold’em Poker

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.

alt text

Architecture Overview

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

Components Setup

Hand Recognition Service (Clojure)

Located in the evaluator folder.

This service evaluates poker hands using Leiningen.

Steps to run:

  1. Open a terminal.

  2. Navigate to the evaluator directory:

    cd evaluator
    
  3. Start the server:

    lein ring server
    

Best Hand Determiner (Haskell)

Located in the determiner folder.

This service determines the strongest hand using Stack.

Steps to run:

  1. Open a terminal.

  2. Navigate to the determiner directory:

    cd determiner
    
  3. Build and run the server:

    stack build
    stack exec determiner
    

Core Game Server (Pharo)

Located in the core folder.

This server coordinates gameplay.

Steps to run:

  1. Launch Pharo.

  2. Open Tools → Catalog Browser and install Tealight.

  3. Open the Playground and execute:

    repositorySpec := 'Mijura/TexasHoldemPoker:master/core'.
    Metacello new
      baseline: 'PokerCore';
      repository: 'github://', repositorySpec;
      load.
    
  4. Load the package via the Monticello Browser.

  5. In the Playground, start the server:

    PCore new core.
    

GUI Desktop Client (Python)

Located in the client folder.

This is the user-facing desktop application.

Steps to run:

  1. Open a terminal.

  2. Navigate to the client directory:

    cd client
    
  3. Launch the application:

    python app.py
    

Notes

  • 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!

About

Texas Hold 'em — The most popular version of poker, now playable online.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors