Skip to content

A collection of classic logic puzzle games implemented with basic python for evaluating compositional generalization.

Notifications You must be signed in to change notification settings

mahnoor-shahid/classic_games_benchmark

Repository files navigation

Classic Games Benchmark

License: MIT Python NumPy Pandas Matplotlib scikit-image scikit-learn tqdm PyYAML

A collection of classic logic puzzle games implemented with basic python for evaluating compositional generalization.

This project is developed by the Department of Sustainability and Innovation in Digital Ecosystems at the University of Duisburg-Essen.

๐Ÿค– AI-Powered Puzzle Suite with Compositional Reasoning

  • Template-Based: Lightning-fast puzzle creation
  • Strategy-Driven: Puzzles require specific solving techniques + compositionality
  • Difficulty Scaling: Mathematically validated difficulty progression
  • Uniqueness Guaranteed: Every puzzle has exactly one solution

๐ŸŽฒ Puzzle Games

๐Ÿ”ข Sudoku

MNIST-Enhanced Classic

  • ๐Ÿ–ผ๏ธ Visual Recognition: Real MNIST digit input
  • ๐Ÿงฉ Smart Generation: Strategy-based puzzle creation
  • ๐Ÿ“Š Difficulty Scaling: Easy to Expert levels
  • ๐Ÿ” Strategy Hierarchy: 15+ solving techniques

Play Sudoku โ†’

โž• KenKen

Arithmetic Puzzle Master

  • ๐Ÿ”ข Operation Recognition: Visual math operator detection
  • ๐Ÿ“ Variable Grid Sizes: 3x3 to 9x9 support
  • ๐ŸŽฏ Strategy Hierarchy: 10+ solving techniques
  • ๐Ÿ“ˆ ๐Ÿ”— Compositionality: Validated strategy chains

Play KenKen โ†’

โž• Kakuro

Cross-Sum Logic Puzzle

  • ๐Ÿ–ผ๏ธ MNIST Digits: Realistic number representation
  • ๐Ÿงฉ Template-Based Generation: Multiple symmetry types
  • ๐Ÿง  Strategy Hierarchy: 10+ solving techniques
  • ๐Ÿ”— Compositionality: Validated strategy chains

Play Kakuro โ†’

โš–๏ธ Futoshiki

Inequality Logic Challenge

  • ๐Ÿ”ค Symbol Recognition: Automatic < > detection
  • ๐ŸŽจ Visual Constraints: MNIST digits + constraint symbols
  • ๐Ÿง  Strategy Hierarchy: 25+ solving techniques
  • ๐Ÿ”— Compositionality: Validated strategy chains

Play Futoshiki โ†’


๐Ÿš€ Getting Started

โšก One-Command Setup

Get everything running in under 2 minutes:

# Clone and setup everything automatically
git clone https://github.com/mahnoor-shahid/classic_games_benchmark
cd classic_games_benchmark
unified_env_quick_setup.bat

This magical script will:

  • โœ… Create isolated virtual environment
  • โœ… Install all dependencies automatically
  • โœ… Download MNIST
  • โœ… Validate installation with test puzzles

๐ŸŽฏ Manual Setup

If you prefer to set up manually:

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)

Installation

  1. Clone the repository:
git clone https://github.com/mahnoor-shahid/classic_games_benchmark
cd classic_games_benchmark
  1. Install dependencies:
pip install -r requirements.txt

๐ŸŽฎ Start Playing Immediately

# Generate and solve Sudoku puzzles
cd game_projects/sudoku
python main.py --action generate_validated 

# Create KenKen challenges
cd game_projects/kenken  
python kenken_main.py --action generate_validated 

# Build Futoshiki with visual constraints
cd game_projects/futoshiki
python futoshiki_main.py --action generate 

# Generate Kakuro cross-sum puzzles
cd game_projects/kakuro
python main.py --action generate_validated --difficulty easy --count 10

๐Ÿ“‚ Organized Project Structure

classic-games/
โ”œโ”€โ”€ ๐ŸŽฎ game_projects/
โ”‚   โ”œโ”€โ”€ ๐Ÿงฉ sudoku/                    # Complete Sudoku implementation
โ”‚   โ”‚   โ”œโ”€โ”€ main.py                   # Main game interface
โ”‚   โ”‚   โ”œโ”€โ”€ generator.py              # Puzzle generation engine
โ”‚   โ”‚   โ”œโ”€โ”€ solver.py                 # AI solving strategies
โ”‚   โ”‚   โ”œโ”€โ”€ knowledge_base/           # Strategy definitions
โ”‚   โ”‚   โ””โ”€โ”€ templates/                # Puzzle templates
โ”‚   โ”œโ”€โ”€ โž• kenken/                    # KenKen arithmetic puzzles
โ”‚   โ”‚   โ”œโ”€โ”€ main.py
โ”‚   โ”‚   โ”œโ”€โ”€ arithmetic_engine.py
โ”‚   โ”‚   โ”œโ”€โ”€ constraint_solver.py
โ”‚   โ”‚   โ””โ”€โ”€ visual_recognition.py
โ”‚   โ”œโ”€โ”€ โž• kakuro/                    # Kakuro cross-sum puzzles
โ”‚   โ”‚   โ”œโ”€โ”€ main.py                   # Main game interface
โ”‚   โ”‚   โ”œโ”€โ”€ template_based_generators.py # Puzzle generation engine
โ”‚   โ”‚   โ”œโ”€โ”€ kakuro_validator.py       # Puzzle validation logic
โ”‚   โ”‚   โ”œโ”€โ”€ kakuro_easy_strategies_kb.py # Easy strategies knowledge base
โ”‚   โ”‚   โ”œโ”€โ”€ kakuro_moderate_strategies_kb.py # Moderate strategies knowledge base
โ”‚   โ”‚   โ”œโ”€โ”€ kakuro_hard_strategies_kb.py # Hard strategies knowledge base
โ”‚   โ”‚   โ””โ”€โ”€ config.yaml               # Configuration
โ”‚   โ””โ”€โ”€ โš–๏ธ futoshiki/                 # Inequality constraint puzzles
โ”‚       โ”œโ”€โ”€ futoshiki_main.py
โ”‚       โ”œโ”€โ”€ template_generator.py
โ”‚       โ”œโ”€โ”€ constraint_visualizer.py
โ”‚       โ””โ”€โ”€ strategy_validator.py
โ”œโ”€โ”€ ๐Ÿ“‹ requirements.txt               # Python dependencies
โ”œโ”€โ”€ ๐Ÿ”ง unified_env_quick_setup.py    # One-command setup
โ”œโ”€โ”€ ๐Ÿ“Š benchmarks/                    # Performance benchmarks
โ”œโ”€โ”€ ๐Ÿ“– docs/                          # Documentation
โ””โ”€โ”€ ๐Ÿงช tests/                         # Comprehensive tests

๐Ÿง  Knowledge Base System

Each game implements a hierarchical knowledge base:

# Example: Sudoku Strategy Hierarchy
Easy Strategies (Base Level)
โ”œโ”€โ”€ naked_single
โ”œโ”€โ”€ constraint_propagation  
โ”œโ”€โ”€ row_uniqueness
โ””โ”€โ”€ column_uniqueness

Moderate Strategies (Composed)
โ”œโ”€โ”€ naked_pair โ†’ [naked_single + constraint_propagation]
โ”œโ”€โ”€ hidden_pair โ†’ [hidden_single + uniqueness]
โ””โ”€โ”€ constraint_chains โ†’ [propagation + forcing]

Hard Strategies (Advanced Composition)
โ”œโ”€โ”€ multiple_chains โ†’ [chain_analysis + intersection]
โ”œโ”€โ”€ network_analysis โ†’ [global_consistency + propagation]
โ””โ”€โ”€ temporal_reasoning โ†’ [sequence_analysis + validation]

# Example: Kakuro Strategy Hierarchy
Easy Strategies (Base Level)
โ”œโ”€โ”€ single_cell_sum
โ”œโ”€โ”€ unique_sum_combination
โ”œโ”€โ”€ cross_reference
โ”œโ”€โ”€ eliminate_impossible
โ”œโ”€โ”€ sum_partition
โ”œโ”€โ”€ digit_frequency

Moderate Strategies (Composed)
โ”œโ”€โ”€ sum_partition โ†’ [single_cell_sum + unique_sum_combination]
โ”œโ”€โ”€ digit_frequency โ†’ [cross_reference + eliminate_impossible]
โ”œโ”€โ”€ sum_difference โ†’ [sum_partition + digit_frequency]
โ”œโ”€โ”€ minimum_maximum โ†’ [sum_partition + sum_difference]
โ”œโ”€โ”€ sum_completion โ†’ [sum_partition + minimum_maximum]
โ”œโ”€โ”€ digit_elimination โ†’ [digit_frequency + sum_completion]

Hard Strategies (Advanced Composition)
โ”œโ”€โ”€ sum_completion โ†’ [sum_partition + minimum_maximum + sum_difference]
โ”œโ”€โ”€ digit_elimination โ†’ [digit_frequency + sum_completion + cross_reference]
โ”œโ”€โ”€ sum_difference โ†’ [sum_partition + digit_frequency + cross_reference]
โ”œโ”€โ”€ minimum_maximum โ†’ [sum_partition + sum_difference + unique_sum_combination]

๐Ÿค Contributing

We welcome contributions to expand our collection of classic games and puzzles! This project is specifically designed to test and demonstrate compositionality in puzzle-solving strategies and knowledge bases. If you're interested in contributing, here's how you can help:

Adding New Games

We're particularly interested in games that:

  • Have clear, composable solving strategies
  • Can be represented with a knowledge base
  • Support multiple difficulty levels
  • Can be validated for compositionality

Quick Contribution Guide

  1. ๐Ÿด Fork & Clone

    git fork https://github.com/yourusername/classic-games.git
    git clone your-fork-url
    cd classic-games
  2. ๐Ÿ”ง Setup Development Environment

    python unified_env_quick_setup.py --dev
  3. ๐Ÿงช Run Tests

    pytest tests/ -v
  4. ๐Ÿ“ Add Your Game & Submit a Pull Request

    mkdir game_projects/your_game
    # Follow our game template structure

๐Ÿ“‹ Game Implementation Checklist

  • Strategy Knowledge Base: Hierarchical solving strategies
  • Template System: Fast puzzle generation patterns
  • Validation Engine: Compositionality and uniqueness checks
  • Performance Metrics: Benchmarking and analytics
  • Visual Processing: Computer vision integration
  • Documentation: Clear examples and API docs
  • Tests: Comprehensive test coverage

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License - Feel free to use, modify, and distribute
Academic use encouraged - Please cite our work
Commercial use welcome - Attribution appreciated

๐Ÿ“ž Support

For questions, suggestions, or collaboration opportunities, feel free to reach out.

๐ŸŽ“ Academic Citations

If you use this project in academic research, please cite:

@software{classic_games_benchmark,
  title={Classic Games Benchmark: AI-Powered Puzzle Suite with Compositional Reasoning},
  author={Mahnoor Shahid & Hannes Rothe},
  institution={University of Duisburg-Essen},
  year={2025},
  url={https://github.com/yourusername/classic-games}
}

๐ŸŽ‰ Ready to Explore AI-Powered Puzzles?

๐Ÿš€ Get Started | ๐Ÿ“– Documentation | ๐Ÿค Contribute | ๐Ÿ“Š Benchmarks


Made with โค๏ธ by the University of Duisburg-Essen

About

A collection of classic logic puzzle games implemented with basic python for evaluating compositional generalization.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published