Skip to content

lookee/Reversi42

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

487 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Reversi42

Reversi42 Logo

GitHub Release PyPI Version Python >= 3.9 Tested: Python 3.9, 3.10, 3.11, 3.12 PyPI Downloads PyPI Status PyPI Format CI Code Coverage Security Docs License

Tournament-grade Reversi with AI-powered opponents
50-100x faster โ€ข 11 AI players โ€ข 644 opening sequences โ€ข Modern web interface


Reversi42 Screenshot


๐Ÿš€ Quick Start

pip install reversi42
reversi42

Open http://localhost:8000 in your browser and start playing!


โœจ Features

๐ŸŽฏ High-Performance Engine

  • Bitboard architecture - 50-100x faster than traditional implementations
  • Advanced AI algorithms - Alpha-beta pruning, transposition tables, parallel search
  • Configurable depth - From beginner (3 ply) to expert (16 ply)
  • Temperature-based variety - Probabilistic move selection for more diverse gameplay

๐Ÿค– 11 AI Opponents

  • ELO ratings: 1250-1880 (beginner to expert)
  • Unique strategies: Adaptive, defensive, aggressive, tactical, chaotic
  • YAML-based configuration - Create custom AI players without coding
  • Move variety - Lower-level players use temperature-based selection for more varied gameplay

๐Ÿ“š Professional Opening Book

  • 644 tournament sequences - Derived from professional play
  • Trie-based lookup - Instant move suggestions
  • Multiple evaluation modes - Balanced and tactical openings

๐ŸŒ Modern Web Interface

  • Real-time gameplay - FastAPI + WebSocket for instant updates
  • Game management - Save/load games in XOT format
  • Live analysis - Move evaluation and position visualization

๐Ÿ† Tournament System

  • Automated competitions - Benchmark AI players
  • Statistical analysis - Comprehensive performance metrics
  • Custom configurations - Flexible tournament setups

๐ŸŽฎ AI Players

Player ELO Strategy Depth Style
DIVZERO.EXE 1880 Adaptive 8/12/16 Maximum strength, parallel processing
The Oracle 1850 Endgame Focus 7/9/14 Endgame specialist, parity evaluation
Apocalyptron 1850 Balanced Adaptive Strong balanced AI
Fortress Eternal 1800 Defensive 10 Defensive specialist
The Executioner 1770 Aggressive 9 Aggressive, mobility-focused
The Strangler 1750 Mobility Control 11 Restricts opponent mobility
Corner Reaper 1720 Positional 8 Corner control specialist
Glitch Lord 1500ยฑ200 Chaotic Variable Unpredictable, randomized
Lightning Strike 1400 Speed 4 Fast-playing
Blitz Demon 1350 Rapid Fire 5 Ultra-fast
Zen Master 1250 Balanced 3 Beginner-friendly

๐Ÿ“– View detailed player profiles โ†’


๐Ÿ“ฆ Installation

From PyPI

pip install reversi42

From Source

git clone https://github.com/lookee/Reversi42.git
cd Reversi42
pip install -e .

Requirements: Python 3.9+


๐ŸŽจ Custom AI Players

Create your own AI opponents using YAML configuration filesโ€”no programming required!

cp config/players/00_AI_CONFIG_TEMPLATE.yaml config/players/enabled/my_ai.yaml
# Edit the configuration file
reversi42  # Your player is automatically discovered!

Move Variety (Temperature): Control how deterministic your AI plays:

  • temperature: 0.0 - Always plays the best move (deterministic)
  • temperature: 0.1-0.3 - Mostly best moves, occasional variety
  • temperature: 0.4-0.5 - High variety for more unpredictable gameplay
  • Auto-calculated based on depth (lower depth = higher temperature)

๐Ÿ“š Configuration Guide โ†’


๐Ÿ“Š Performance

  • Speed: 50-100x faster than array-based implementations
  • Search Depth: 4-16 ply (configurable)
  • Parallel Processing: Multi-core support
  • Memory: Optimized data structures

๐Ÿ“– Documentation


๐Ÿงช Testing

# Run test suite
./scripts/run_tests.sh

# With coverage
pytest --cov=src tests/

572+ tests covering unit, integration, and characterization scenarios.

Test Coverage by Module

  • Apocalyptron AI Engine: 800+ tests (evaluation, ordering, pruning, cache, search, observers)
  • Board Module: 34 tests (BoardModel, BoardControl, ViewFactory)
  • Players Module: 60+ tests (PlayerFactory, PlayerHuman, PlayerApocalyptron, config system)
  • Core Module: 34 tests (config, game_config)
  • Infrastructure: 10 tests (persistence/game_io)
  • Integration Tests: 50+ tests (board integrity, player isolation, book instant mode)
  • Bitboard Tests: Comprehensive move generation tests
  • WebGUI Tests: Backend server, WebSocket observer, E2E tests

๐Ÿ“ˆ Project Stats

  • ~17,000 lines of Python code
  • 572+ tests with comprehensive coverage (target: 80%+)
  • 44 test files organized by module
  • 40+ documentation files
  • 11 AI players pre-configured
  • 644 opening sequences from professional play

๐Ÿ“„ License

GNU General Public License v3.0 or later
See LICENSE for details.


๐Ÿ‘ค Author

Luca Amore
๐ŸŒ www.lucaamore.com
๐Ÿ“ง luca.amore@gmail.com


๐Ÿ™ Acknowledgments

  • Donato Barnaba and Federazione Italiana Gioco Othello (FNGO) - Reversi expertise
  • PointyStone3 Project - Opening book contributions

Reversi42 - Professional-grade Reversi for players and researchers
GitHub โ€ข PyPI โ€ข Issues

About

AI Player of Reversi

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors