Skip to content

RemiSeg/Poker-tournament

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Poker Bot Arena

A multi-agent poker simulation platform built to study and compare different poker bot behaviors through real Texas Hold'em gameplay.

Overview

The system supports:

  • Human vs Bots gameplay – Play live against multiple poker bots
  • Full bot-vs-bot arena simulations – Run hundreds of hands automatically
  • Statistical performance comparison – Compare different bot strategies
  • Real poker mechanics – Betting rounds, blinds, pots, and showdown resolution
  • Modern 2D poker table frontend – Interactive arena interface

The goal of the project is not to create an unbeatable poker AI, but rather to engineer a complete poker engine and experimentally compare different strategic approaches such as probability-based play and bluff-oriented behavior.

Project Goals

The platform was designed around three main objectives:

1. Build a Real Poker Engine

Implement the complete backend logic required for Texas Hold'em:

  • Deck and card management
  • Dealer and blind rotation
  • Betting rounds
  • Pot management
  • Turn progression
  • Fold / call / raise / all-in actions
  • Community card dealing
  • Hand evaluation
  • Winner determination
  • Multi-hand arena progression

The backend acts as a true game engine rather than a simple mock simulation.

2. Compare Different Poker Bot Strategies

The system includes four distinct poker bots with different behavioral models. The objective is to simulate hundreds or thousands of hands and observe:

  • Win rates
  • Aggression effectiveness
  • Bluffing performance
  • Risk-reward balance
  • Long-term survivability

3. Create an Interactive Poker Arena

The frontend allows users to:

Human Games

  • Play against up to 9 bots
  • Fold / call / raise / all-in
  • Continue hands automatically
  • Watch showdown results
  • See winning hands and community cards

Simulation Arena

  • Run bot-only simulations
  • Choose bot compositions
  • Compare strategies statistically
  • Observe long-term performance trends

Current Features

Backend Features

Core Poker Engine

  • Texas Hold'em rules
  • Dealer rotation
  • Small blind / big blind posting
  • Betting round progression
  • Pot tracking
  • Side-action management
  • Automatic showdown resolution

Game Modes

  • Human vs Bots
  • Bot Simulation Arena

Action System

  • Fold
  • Check
  • Call
  • Raise
  • All-In

Hand Resolution

  • Best hand evaluation
  • Winner selection
  • Pot distribution
  • Arena continuation after each hand

Simulation System

  • Multi-hand simulation runner
  • Win-rate statistics
  • Total winnings tracking
  • Comparative bot performance output

Bot Types

The project currently contains four bot archetypes. These are intentionally different behavioral models rather than perfect poker solvers.

1. Random Parameter Bot

Philosophy: A semi-chaotic bot with randomized behavioral tendencies.

Behavior:

  • Uses loose probabilistic logic
  • Random aggression
  • Random bluff frequency
  • Inconsistent decision making

Purpose: Acts as a baseline bot, noisy opponent, and comparison reference

Characteristics: Unpredictable, volatile, sometimes irrational, occasionally dangerous

2. Probabilistic Bot

Philosophy: A logic-first poker bot focused on probability and expected value.

Behavior:

  • Evaluates estimated hand strength
  • Makes conservative betting decisions
  • Rarely bluffs
  • Avoids unnecessary risk

Purpose: Represents rational poker play and controlled long-term consistency

Characteristics: Stable, defensive, consistent, lower bluff frequency

3. Bluffing Bot

Philosophy: An aggressive pressure-based bot.

Behavior:

  • High bluff frequency
  • Large raises
  • Attempts to force folds
  • Applies psychological pressure

Purpose: Tests whether aggressive bluff-heavy play can outperform rational approaches

Characteristics: Highly aggressive, risky, unstable, can dominate weak tables, can collapse quickly

4. Balanced Bot

Philosophy: A hybrid between probability-based play and controlled bluffing.

Behavior:

  • Uses probabilistic evaluation
  • Introduces calculated bluffing
  • Adapts aggression more carefully
  • Attempts balanced risk management

Purpose: Acts as the "best overall strategy" candidate

Characteristics: Balanced aggression, moderate bluffing, more adaptive, strong long-term performance

System Architecture

Backend Stack

  • Language: Java 25
  • Framework: Spring Boot
  • Architecture: Layered backend architecture

Main Components:

  • Game Engine – Turn progression, betting round management, hand lifecycle
  • Dealer Service – Deck creation, shuffling, card dealing
  • Betting Manager – Action validation, pot contributions
  • Showdown Service – Hand evaluation, winner determination, pot distribution
  • Bot Engine – Decision making, strategy execution, automated turns

Frontend Stack

  • Framework: Vue 3
  • Language: TypeScript
  • Build Tool: Vite

Features:

  • Clean 2D poker arena
  • Simulation dashboard
  • Visual comparison tool
  • Focus on readability, fast interaction, real-time state visibility

Example Simulation Output

{
  "handsRequested": 100,
  "handsCompleted": 100,
  "botStats": [
    {
      "botType": "RANDOM_PARAMETER",
      "winRate": 0.12
    },
    {
      "botType": "PROBABILISTIC",
      "winRate": 0.21
    },
    {
      "botType": "BLUFFING",
      "winRate": 0.25
    },
    {
      "botType": "BALANCED",
      "winRate": 0.34
    }
  ]
}

Project Structure

poker-bot-arena/
│
├── poker-arena-backend/
│   ├── api/
│   ├── bot/
│   ├── cards/
│   ├── dealer/
│   ├── dto/
│   ├── engine/
│   ├── game/
│   ├── hand/
│   ├── player/
│   ├── service/
│   └── simulation/
│
├── frontend/
│   ├── components/
│   ├── pages/
│   ├── api/
│   ├── router/
│   ├── styles/
│   └── types/
│
└── README.md

Getting Started

Running the Backend

cd poker-arena-backend
./mvnw spring-boot:run

Backend runs at: http://localhost:8080

Running the Frontend

cd frontend
npm install
npm run dev

Frontend runs at: http://localhost:5173

Future Improvements

Potential future extensions:

  • Smarter statistical hand evaluation
  • Monte Carlo simulation bots
  • Reinforcement learning experiments
  • Real multiplayer networking
  • Persistent game storage
  • Tournament brackets
  • Spectator mode
  • Real-time websocket updates
  • Advanced bot analytics
  • Poker replay system

Project Status

Current state:

  • Fully playable poker engine
  • Functional simulation arena
  • Multi-bot support
  • Human gameplay support
  • Frontend UI operational
  • Statistical simulations operational

This project is currently focused on experimentation, gameplay simulation, and software engineering architecture rather than production-grade online

About

Try creating bots to beat other bots in a game of poker (with human play too)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors