PHPackages                             mission-gaming/tactician - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mission-gaming/tactician

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mission-gaming/tactician
========================

A modern PHP library for generating structured tournament schedules with deterministic algorithms like Round Robin, Swiss, and Pool play

v0.1.1(1mo ago)13.4kMITPHPPHP ^8.3CI passing

Since Oct 11Pushed 1mo agoCompare

[ Source](https://github.com/mission-gaming/tactician)[ Packagist](https://packagist.org/packages/mission-gaming/tactician)[ RSS](/packages/mission-gaming-tactician/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)Dependencies (8)Versions (24)Used By (0)

Tactician
=========

[](#tactician)

[![PHP Version](https://camo.githubusercontent.com/ef0054230522e542bc1f908ac005c6c75888dea255bac910f9015e12095e31d7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545382e332d626c7565)](https://packagist.org/packages/mission-gaming/tactician)[![License](https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e)](LICENSE)[![Build Status](https://github.com/mission-gaming/tactician/actions/workflows/ci.yml/badge.svg)](https://github.com/mission-gaming/tactician/actions/workflows/ci.yml)[![codecov](https://camo.githubusercontent.com/72bddd1bd5db32f6ada6713a16e15e4367c080ba63602de23efa9b49881cf441/68747470733a2f2f636f6465636f762e696f2f6769746875622f6d697373696f6e2d67616d696e672f74616374696369616e2f67726170682f62616467652e7376673f746f6b656e3d42355151425734333441)](https://codecov.io/github/mission-gaming/tactician)

Overview
--------

[](#overview)

A modern PHP library for generating structured schedules between participants. Ideal for tournaments (round robin, Swiss, pools) but flexible enough for any scenario where entities need to be paired or grouped into events.

**Key Features:**

- 🏆 **Tournament Formats**: Round robin (single &amp; multi-leg), Swiss pairing, single &amp; double elimination, group stages
- 📊 **Results &amp; Standings**: Pluggable ranking strategies, league tables, and tiebreakers (wins, Buchholz, Sonneborn–Berger)
- 🔧 **Flexible Constraints**: Built-in and custom predicate-based constraint system
- ✅ **Schedule Validation**: Comprehensive validation prevents incomplete schedules
- 💾 **Serialization**: JSON round-tripping for schedules and participants
- 🎯 **Modern PHP**: PHP 8.3+ with readonly classes and strict typing
- 🧪 **Test-Driven**: Comprehensive test suite with Pest framework
- 📐 **Mathematical Accuracy**: Circle method implementation for round-robin
- 🛡️ **Production Ready**: PHPStan level 8 compliance with zero errors

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

[](#installation)

Install via Composer:

```
composer require mission-gaming/tactician
```

**Requirements:**

- PHP 8.3+
- No external dependencies in production

Quick Start
-----------

[](#quick-start)

```
